diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index c8459535187..c9b86f13a79 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -9,3 +9,4 @@ GLX_EXT_swap_control for DRI2 and DRI3 GLX_EXT_swap_control_tear for DRI3 VK_KHR_copy_commands2 on RADV NGG GS support in ACO +VK_KHR_shader_terminate_invocation on ANV diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 95cfb586387..c4e932cc4f4 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -1379,6 +1379,13 @@ void anv_GetPhysicalDeviceFeatures2( break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR: { + VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR *features = + (VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR *)ext; + features->shaderTerminateInvocation = true; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT: { VkPhysicalDeviceSubgroupSizeControlFeaturesEXT *features = (VkPhysicalDeviceSubgroupSizeControlFeaturesEXT *)ext; diff --git a/src/intel/vulkan/anv_extensions.py b/src/intel/vulkan/anv_extensions.py index 1617e2e3665..d3f64c790d4 100644 --- a/src/intel/vulkan/anv_extensions.py +++ b/src/intel/vulkan/anv_extensions.py @@ -106,6 +106,7 @@ EXTENSIONS = [ Extension('VK_KHR_shader_float_controls', 1, 'device->info.gen >= 8'), Extension('VK_KHR_shader_non_semantic_info', 1, True), Extension('VK_KHR_shader_subgroup_extended_types', 1, 'device->info.gen >= 8'), + Extension('VK_KHR_shader_terminate_invocation', 1, True), Extension('VK_KHR_spirv_1_4', 1, True), Extension('VK_KHR_storage_buffer_storage_class', 1, True), Extension('VK_KHR_surface', 25, 'ANV_HAS_SURFACE'),