anv: Advertise VK_KHR_shader_terminate_invocation
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7221>
diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt
index c845953..c9b86f1 100644
--- a/docs/relnotes/new_features.txt
+++ b/docs/relnotes/new_features.txt
@@ -9,3 +9,4 @@
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 95cfb58..c4e932c 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -1379,6 +1379,13 @@
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 1617e2e..d3f64c7 100644
--- a/src/intel/vulkan/anv_extensions.py
+++ b/src/intel/vulkan/anv_extensions.py
@@ -106,6 +106,7 @@
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'),