Mesa (main): radv: enable VK_KHR_shader_subgroup_uniform_control_flow

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jul 1 10:26:50 UTC 2021


Module: Mesa
Branch: main
Commit: ed123a03be185af28d563f640a7ab9a1093af1a8
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ed123a03be185af28d563f640a7ab9a1093af1a8

Author: Rhys Perry <pendingchaos02 at gmail.com>
Date:   Mon Jun 21 16:54:56 2021 +0100

radv: enable VK_KHR_shader_subgroup_uniform_control_flow

Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11626>

---

 docs/features.txt              | 1 +
 docs/relnotes/new_features.txt | 2 +-
 src/amd/vulkan/radv_device.c   | 7 +++++++
 src/amd/vulkan/radv_shader.c   | 1 +
 4 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/docs/features.txt b/docs/features.txt
index f3004f61fd8..460cdb801ba 100644
--- a/docs/features.txt
+++ b/docs/features.txt
@@ -494,6 +494,7 @@ Khronos extensions that are not part of any Vulkan version:
   VK_KHR_push_descriptor                                DONE (anv, lvp, radv, tu)
   VK_KHR_shader_clock                                   DONE (anv, radv)
   VK_KHR_shader_non_semantic_info                       DONE (anv, radv)
+  VK_KHR_shader_subgroup_uniform_control_flow           DONE (anv, radv)
   VK_KHR_shader_terminate_invocation                    DONE (anv, radv, tu)
   VK_KHR_shared_presentable_image                       not started
   VK_KHR_surface                                        DONE (anv, lvp, radv, tu, v3dv, vn)
diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt
index 2ea846ac586..303fb23e573 100644
--- a/docs/relnotes/new_features.txt
+++ b/docs/relnotes/new_features.txt
@@ -3,7 +3,7 @@ VK_EXT_provoking_vertex on RADV.
 VK_EXT_extended_dynamic_state2 on RADV.
 VK_EXT_global_priority_query on RADV.
 VK_EXT_physical_device_drm on RADV.
-VK_KHR_shader_subgroup_uniform_control_flow on Intel.
+VK_KHR_shader_subgroup_uniform_control_flow on Intel and RADV.
 32-bit x86 builds now default disable x87 math and use sse2.
 GL ES 3.1 on GT21x hardware.
 VK_EXT_acquire_drm_display on RADV.
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index b5d799f8dee..c1464c264d8 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -434,6 +434,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device
       .KHR_shader_float_controls = true,
       .KHR_shader_non_semantic_info = true,
       .KHR_shader_subgroup_extended_types = true,
+      .KHR_shader_subgroup_uniform_control_flow = true,
       .KHR_shader_terminate_invocation = true,
       .KHR_spirv_1_4 = true,
       .KHR_storage_buffer_storage_class = true,
@@ -1642,6 +1643,12 @@ radv_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
          features->descriptorBindingAccelerationStructureUpdateAfterBind = true;
          break;
       }
+      case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: {
+         VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR *features =
+            (VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR *)ext;
+         features->shaderSubgroupUniformControlFlow = true;
+         break;
+      }
       default:
          break;
       }
diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
index 5a1903b9a1a..2960008eb30 100644
--- a/src/amd/vulkan/radv_shader.c
+++ b/src/amd/vulkan/radv_shader.c
@@ -454,6 +454,7 @@ radv_shader_compile_to_nir(struct radv_device *device, struct vk_shader_module *
                .subgroup_basic = true,
                .subgroup_quad = true,
                .subgroup_shuffle = true,
+               .subgroup_uniform_control_flow = true,
                .subgroup_vote = true,
                .tessellation = true,
                .transform_feedback = true,



More information about the mesa-commit mailing list