Skip to content

Commit 8871cc8

Browse files
committed
Add support for VK_KHR_shader_quad_control
1 parent b2d90ce commit 8871cc8

File tree

5 files changed

+13
-2
lines changed

5 files changed

+13
-2
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
f1cb5b6634c58be69c327450d0023fb061f0f650
1+
8d724ab32708129e45846a30005348d10ba31a06

MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,12 @@
618618
shaderReconvergenceFeatures->shaderMaximalReconvergence = _gpuCapabilities.isAppleGPU;
619619
break;
620620
}
621+
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR: {
622+
auto* shaderQuadControlFeatures = (VkPhysicalDeviceShaderQuadControlFeaturesKHR*)next;
623+
// Depends on maximal reconvergence, which in turn depends on Apple GPU.
624+
shaderQuadControlFeatures->shaderQuadControl = _gpuCapabilities.isAppleGPU && _metalFeatures.quadPermute;
625+
break;
626+
}
621627
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR: {
622628
auto* shaderRelaxedFeatures = (VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR*)next;
623629
shaderRelaxedFeatures->shaderRelaxedExtendedInstruction = true;
@@ -3756,6 +3762,9 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope
37563762
pWritableExtns->vk_KHR_shader_subgroup_uniform_control_flow.enabled = false;
37573763
pWritableExtns->vk_KHR_shader_maximal_reconvergence.enabled = false;
37583764
}
3765+
if (!_gpuCapabilities.isAppleGPU || !_metalFeatures.quadPermute) {
3766+
pWritableExtns->vk_KHR_shader_quad_control.enabled = false;
3767+
}
37593768
if (!_metalFeatures.samplerMirrorClampToEdge) {
37603769
pWritableExtns->vk_KHR_sampler_mirror_clamp_to_edge.enabled = false;
37613770
}

MoltenVK/MoltenVK/GPUObjects/MVKDeviceFeatureStructs.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ MVK_DEVICE_FEATURE_EXTN(PortabilitySubset, PORTABILITY_SUBSET,
8383
MVK_DEVICE_FEATURE_EXTN(PresentId, PRESENT_ID, KHR, 1)
8484
MVK_DEVICE_FEATURE_EXTN(PresentWait, PRESENT_WAIT, KHR, 1)
8585
MVK_DEVICE_FEATURE_EXTN(ShaderMaximalReconvergence, SHADER_MAXIMAL_RECONVERGENCE, KHR, 1)
86+
MVK_DEVICE_FEATURE_EXTN(ShaderQuadControl, SHADER_QUAD_CONTROL, KHR, 1)
8687
MVK_DEVICE_FEATURE_EXTN(ShaderRelaxedExtendedInstruction, SHADER_RELAXED_EXTENDED_INSTRUCTION, KHR, 1)
8788
MVK_DEVICE_FEATURE_EXTN(ShaderSubgroupUniformControlFlow, SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW, KHR, 1)
8889
MVK_DEVICE_FEATURE_EXTN(4444Formats, 4444_FORMATS, EXT, 2)

MoltenVK/MoltenVK/Layers/MVKExtensions.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ MVK_EXTENSION(KHR_shader_float_controls, KHR_SHADER_FLOAT_CONTROL
100100
MVK_EXTENSION(KHR_shader_integer_dot_product, KHR_SHADER_INTEGER_DOT_PRODUCT, DEVICE, 10.11, 8.0, 1.0)
101101
MVK_EXTENSION(KHR_shader_maximal_reconvergence, KHR_SHADER_MAXIMAL_RECONVERGENCE, DEVICE, 10.11, 8.0, 1.0)
102102
MVK_EXTENSION(KHR_shader_non_semantic_info, KHR_SHADER_NON_SEMANTIC_INFO, DEVICE, 10.11, 8.0, 1.0)
103+
MVK_EXTENSION(KHR_shader_quad_control, KHR_SHADER_QUAD_CONTROL, DEVICE, 10.14, 13.0, 1.0)
103104
MVK_EXTENSION(KHR_shader_relaxed_extended_instruction, KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION, DEVICE, 10.11, 8.0, 1.0)
104105
MVK_EXTENSION(KHR_shader_subgroup_extended_types, KHR_SHADER_SUBGROUP_EXTENDED_TYPES, DEVICE, 10.14, 13.0, 1.0)
105106
MVK_EXTENSION(KHR_shader_subgroup_rotate, KHR_SHADER_SUBGROUP_ROTATE, DEVICE, 10.14, 13.0, 1.0)

fetchDependencies

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ if [ ! "$SPIRV_CROSS_ROOT" = "" ]; then
336336
rm -rf ${REPO_NAME}
337337
ln -sfn ${SPIRV_CROSS_ROOT} ${REPO_NAME}
338338
else
339-
REPO_URL="https://github.com/KhronosGroup/${REPO_NAME}.git"
339+
REPO_URL="https://github.com/squidbus/${REPO_NAME}.git"
340340
REPO_REV=$(cat "${EXT_REV_DIR}/${REPO_NAME}_repo_revision")
341341

342342
update_repo ${REPO_NAME} ${REPO_URL} ${REPO_REV}

0 commit comments

Comments
 (0)