diff --git a/docs/features.txt b/docs/features.txt index 425fc38188f..ef9110fe813 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -541,7 +541,7 @@ Khronos extensions that are not part of any Vulkan version: VK_KHR_shader_float_controls2 DONE (anv, tu) VK_KHR_shader_maximal_reconvergence DONE (anv, lvp, nvk, radv) VK_KHR_shader_subgroup_rotate DONE (anv, nvk, radv) - VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, hasvk, nvk, radv) + VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, hasvk, nvk, radv, tu) VK_KHR_shader_quad_control DONE (anv, radv) VK_KHR_shared_presentable_image not started VK_KHR_surface DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) diff --git a/src/freedreno/ci/freedreno-a6xx-skips.txt b/src/freedreno/ci/freedreno-a6xx-skips.txt index e08b642f09a..2f755fba4b1 100644 --- a/src/freedreno/ci/freedreno-a6xx-skips.txt +++ b/src/freedreno/ci/freedreno-a6xx-skips.txt @@ -87,3 +87,6 @@ spec@nv_copy_image@nv_copy_image.* shaders@point-vertex-id.* # uses stipple: spec@!opengl 1.0@gl-1.0-no-op-paths + +# Some reconvergence tests are very slow: +(gmem-|stale-regs-)?dEQP-VK.reconvergence.(sub|work)group_uniform_control_flow_(ballot|elect).compute.nesting4.(0.40|7.10) diff --git a/src/freedreno/vulkan/tu_device.cc b/src/freedreno/vulkan/tu_device.cc index cb6819987a8..e9d27b239bf 100644 --- a/src/freedreno/vulkan/tu_device.cc +++ b/src/freedreno/vulkan/tu_device.cc @@ -207,6 +207,7 @@ get_device_extensions(const struct tu_physical_device *device, .KHR_shader_integer_dot_product = 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, @@ -482,6 +483,9 @@ tu_get_features(struct tu_physical_device *pdevice, /* VK_KHR_shader_float_controls2 */ features->shaderFloatControls2 = true; + /* VK_KHR_shader_subgroup_uniform_control_flow */ + features->shaderSubgroupUniformControlFlow = true; + /* VK_KHR_vertex_attribute_divisor */ features->vertexAttributeInstanceRateDivisor = true; features->vertexAttributeInstanceRateZeroDivisor = true;