From 23a424f6e3ce6fe74584b9c1da24d51e7097dc9b Mon Sep 17 00:00:00 2001 From: Chad Versace Date: Wed, 10 Aug 2022 16:02:20 -0700 Subject: [PATCH] venus: Enable VK_KHR_shader_terminate_invocation Signed-off-by: Chad Versace Reviewed-by: Yiwei Zhang Reviewed-by: Ryan Neph Part-of: --- docs/features.txt | 2 +- src/virtio/vulkan/vn_physical_device.c | 5 +++++ src/virtio/vulkan/vn_physical_device.h | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/features.txt b/docs/features.txt index b2d04e4dd70..90a0c13a993 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -479,7 +479,7 @@ Vulkan 1.3 -- all DONE: anv, radv, lvp VK_KHR_maintenance4 DONE (anv, lvp, radv, tu, vn) VK_KHR_shader_integer_dot_product DONE (anv, lvp, radv, tu, vn) VK_KHR_shader_non_semantic_info DONE (anv, radv, tu, v3dv, vn) - VK_KHR_shader_terminate_invocation DONE (anv, lvp, radv, tu) + VK_KHR_shader_terminate_invocation DONE (anv, lvp, radv, tu, vn) VK_KHR_synchronization2 DONE (anv, lvp, panvk, radv, tu) VK_KHR_zero_initialize_workgroup_memory DONE (anv, lvp, radv, tu) VK_EXT_4444_formats DONE (anv, lvp, radv, tu, v3dv, vn) diff --git a/src/virtio/vulkan/vn_physical_device.c b/src/virtio/vulkan/vn_physical_device.c index 1352dd1c266..b9b5206bb29 100644 --- a/src/virtio/vulkan/vn_physical_device.c +++ b/src/virtio/vulkan/vn_physical_device.c @@ -122,6 +122,9 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev) VN_ADD_EXT_TO_PNEXT(exts->KHR_shader_integer_dot_product, feats->shader_integer_dot_product, SHADER_INTEGER_DOT_PRODUCT_FEATURES, features2); + VN_ADD_EXT_TO_PNEXT(exts->KHR_shader_terminate_invocation, + feats->shader_terminate_invocation, + SHADER_TERMINATE_INVOCATION_FEATURES, features2); VN_ADD_EXT_TO_PNEXT(exts->EXT_4444_formats, feats->argb_4444_formats, 4444_FORMATS_FEATURES_EXT, features2); VN_ADD_EXT_TO_PNEXT(exts->EXT_extended_dynamic_state, @@ -1049,6 +1052,7 @@ vn_physical_device_get_passthrough_extensions( .KHR_maintenance4 = true, .KHR_shader_integer_dot_product = true, .KHR_shader_non_semantic_info = true, + .KHR_shader_terminate_invocation = true, .EXT_4444_formats = true, .EXT_extended_dynamic_state = true, .EXT_extended_dynamic_state2 = true, @@ -1672,6 +1676,7 @@ vn_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, CASE(PIPELINE_CREATION_CACHE_CONTROL_FEATURES, pipeline_creation_cache_control); CASE(SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES, shader_demote_to_helper_invocation); CASE(SHADER_INTEGER_DOT_PRODUCT_FEATURES, shader_integer_dot_product); + CASE(SHADER_TERMINATE_INVOCATION_FEATURES, shader_terminate_invocation); CASE(TEXTURE_COMPRESSION_ASTC_HDR_FEATURES, texture_compression_astc_hdr); /* EXT */ diff --git a/src/virtio/vulkan/vn_physical_device.h b/src/virtio/vulkan/vn_physical_device.h index c7a913daf06..64c8880cde3 100644 --- a/src/virtio/vulkan/vn_physical_device.h +++ b/src/virtio/vulkan/vn_physical_device.h @@ -35,6 +35,8 @@ struct vn_physical_device_features { VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures shader_demote_to_helper_invocation; VkPhysicalDeviceShaderIntegerDotProductFeatures shader_integer_dot_product; + VkPhysicalDeviceShaderTerminateInvocationFeatures + shader_terminate_invocation; VkPhysicalDeviceTextureCompressionASTCHDRFeatures texture_compression_astc_hdr;