venus: Enable VK_KHR_shader_terminate_invocation
authorChad Versace <chadversary@chromium.org>
Wed, 10 Aug 2022 23:02:20 +0000 (16:02 -0700)
committerMarge Bot <emma+marge@anholt.net>
Tue, 30 Aug 2022 08:09:55 +0000 (08:09 +0000)
Signed-off-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000>

docs/features.txt
src/virtio/vulkan/vn_physical_device.c
src/virtio/vulkan/vn_physical_device.h

index b2d04e4..90a0c13 100644 (file)
@@ -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)
index 1352dd1..b9b5206 100644 (file)
@@ -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 */
index c7a913d..64c8880 100644 (file)
@@ -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;