Skip to content

Commit 70c4126

Browse files
committed
Disable new control flow extensions for non-Apple GPUs
1 parent 5757846 commit 70c4126

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
@@ -552,7 +552,7 @@
552552
}
553553
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR: {
554554
auto* shaderReconvergenceFeatures = (VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR*)next;
555-
shaderReconvergenceFeatures->shaderMaximalReconvergence = true;
555+
shaderReconvergenceFeatures->shaderMaximalReconvergence = _gpuCapabilities.isAppleGPU;
556556
break;
557557
}
558558
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR: {
@@ -568,7 +568,7 @@
568568
}
569569
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: {
570570
auto* shaderSGUniformFeatures = (VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*)next;
571-
shaderSGUniformFeatures->shaderSubgroupUniformControlFlow = true;
571+
shaderSGUniformFeatures->shaderSubgroupUniformControlFlow = _gpuCapabilities.isAppleGPU;
572572
break;
573573
}
574574
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
@@ -3667,6 +3667,10 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope
36673667
MVKExtensionList* pWritableExtns = (MVKExtensionList*)&_supportedExtensions;
36683668
pWritableExtns->disableAllButEnabledDeviceExtensions();
36693669

3670+
if (!_gpuCapabilities.isAppleGPU) {
3671+
pWritableExtns->vk_KHR_shader_subgroup_uniform_control_flow.enabled = false;
3672+
pWritableExtns->vk_KHR_shader_maximal_reconvergence.enabled = false;
3673+
}
36703674
if (!_metalFeatures.samplerMirrorClampToEdge) {
36713675
pWritableExtns->vk_KHR_sampler_mirror_clamp_to_edge.enabled = false;
36723676
}

0 commit comments

Comments
 (0)