nextPtr = &physicalDeviceShaderSubgroupExtendedTypesFeaturesKHR.pNext;
}
+ vk::VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
+ deMemset(&physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, 0, sizeof(physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR));
+
+ if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_subgroup_uniform_control_flow")) )
+ {
+ physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.sType = getStructureType<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>();
+ *nextPtr = &physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
+ nextPtr = &physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.pNext;
+ }
+
vk::VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR physicalDeviceShaderTerminateInvocationFeaturesKHR;
deMemset(&physicalDeviceShaderTerminateInvocationFeaturesKHR, 0, sizeof(physicalDeviceShaderTerminateInvocationFeaturesKHR));
}
}
+ if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_subgroup_uniform_control_flow")) )
+ {
+ if ( physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.shaderSubgroupUniformControlFlow == VK_FALSE )
+ {
+ log << tcu::TestLog::Message << "Mandatory feature shaderSubgroupUniformControlFlow not supported" << tcu::TestLog::EndMessage;
+ result = false;
+ }
+ }
+
return result;
}
VkPhysicalDeviceShaderAtomicFloatFeaturesEXT FEATURES ( shaderImageFloat32Atomics ) REQUIREMENTS ( VK_EXT_shader_atomic_float physicalDeviceShaderAtomicFloatFeaturesEXT.sparseImageFloat32Atomics )
VkPhysicalDeviceShaderAtomicFloatFeaturesEXT FEATURES ( shaderImageFloat32AtomicAdd ) REQUIREMENTS ( VK_EXT_shader_atomic_float physicalDeviceShaderAtomicFloatFeaturesEXT.sparseImageFloat32AtomicAdd )
VkPhysicalDeviceMultiDrawFeaturesEXT FEATURES ( multiDraw ) REQUIREMENTS ( VK_EXT_multi_draw )
+VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR FEATURES ( shaderSubgroupUniformControlFlow ) REQUIREMENTS ( VK_KHR_shader_subgroup_uniform_control_flow )
\ No newline at end of file