Skip to content

Commit 7bae8fd

Browse files
committed
Disable new control flow extensions for non-Apple GPUs
1 parent daa6178 commit 7bae8fd

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,7 @@
557557
}
558558
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR: {
559559
auto* shaderReconvergenceFeatures = (VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR*)next;
560-
shaderReconvergenceFeatures->shaderMaximalReconvergence = true;
560+
shaderReconvergenceFeatures->shaderMaximalReconvergence = _gpuCapabilities.isAppleGPU;
561561
break;
562562
}
563563
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR: {
@@ -573,7 +573,7 @@
573573
}
574574
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: {
575575
auto* shaderSGUniformFeatures = (VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*)next;
576-
shaderSGUniformFeatures->shaderSubgroupUniformControlFlow = true;
576+
shaderSGUniformFeatures->shaderSubgroupUniformControlFlow = _gpuCapabilities.isAppleGPU;
577577
break;
578578
}
579579
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
@@ -3672,6 +3672,10 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope
36723672
MVKExtensionList* pWritableExtns = (MVKExtensionList*)&_supportedExtensions;
36733673
pWritableExtns->disableAllButEnabledDeviceExtensions();
36743674

3675+
if (!_gpuCapabilities.isAppleGPU) {
3676+
pWritableExtns->vk_KHR_shader_subgroup_uniform_control_flow.enabled = false;
3677+
pWritableExtns->vk_KHR_shader_maximal_reconvergence.enabled = false;
3678+
}
36753679
if (!_metalFeatures.samplerMirrorClampToEdge) {
36763680
pWritableExtns->vk_KHR_sampler_mirror_clamp_to_edge.enabled = false;
36773681
}

0 commit comments

Comments
 (0)