tu: Update subgroup properties
authorConnor Abbott <cwabbott0@gmail.com>
Mon, 14 Sep 2020 10:30:12 +0000 (12:30 +0200)
committerMarge Bot <eric+marge@anholt.net>
Thu, 8 Jul 2021 16:02:41 +0000 (16:02 +0000)
Everything should be in place for this to actually work. Support a size
of 128, unlike the blob. I've also plumbed through ballot support, so
enable that.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752>

src/freedreno/ci/deqp-freedreno-a630-fails.txt
src/freedreno/vulkan/tu_device.c
src/freedreno/vulkan/tu_shader.c

index 860e659..14b1f9e 100644 (file)
@@ -81,36 +81,6 @@ dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.writes_tw
 # at it didn't help).
 dEQP-VK.spirv_assembly.instruction.spirv1p4.opcopylogical.nested_arrays_different_inner_stride,Fail
 
-# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752
-dEQP-VK.subgroups.basic.compute.subgroupbarrier,Crash
-dEQP-VK.subgroups.basic.compute.subgroupelect,Crash
-dEQP-VK.subgroups.basic.compute.subgroupmemorybarrier,Crash
-dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierbuffer,Crash
-dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierimage,Crash
-dEQP-VK.subgroups.basic.compute.subgroupmemorybarriershared,Crash
-dEQP-VK.subgroups.builtin_var.compute.numsubgroups,Crash
-dEQP-VK.subgroups.builtin_var.compute.subgroupid,Crash
-dEQP-VK.subgroups.builtin_var.compute.subgroupinvocationid_compute,Crash
-dEQP-VK.subgroups.builtin_var.compute.subgroupsize_compute,Crash
-dEQP-VK.subgroups.vote.compute.subgroupall_uint,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_bool,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec2,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec3,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec4,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_float,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_int,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec2,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec3,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec4,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_uint,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec2,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec3,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec4,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_vec2,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_vec3,Crash
-dEQP-VK.subgroups.vote.compute.subgroupallequal_vec4,Crash
-dEQP-VK.subgroups.vote.compute.subgroupany_uint,Crash
-
 dEQP-VK.texture.filtering.2d.formats.d24_unorm_s8_uint_stencil.nearest,Fail
 dEQP-VK.texture.filtering.2d_array.formats.d24_unorm_s8_uint_stencil.d24_unorm_s8_uint_stencil_nearest,Fail
 dEQP-VK.texture.filtering.cube.formats.d24_unorm_s8_uint_stencil.nearest,Fail
index cb41152..6c18348 100644 (file)
@@ -962,10 +962,11 @@ tu_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
       case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
          VkPhysicalDeviceSubgroupProperties *properties =
             (VkPhysicalDeviceSubgroupProperties *)ext;
-         properties->subgroupSize = 64;
+         properties->subgroupSize = 128;
          properties->supportedStages = VK_SHADER_STAGE_COMPUTE_BIT;
          properties->supportedOperations = VK_SUBGROUP_FEATURE_BASIC_BIT |
-                                           VK_SUBGROUP_FEATURE_VOTE_BIT;
+                                           VK_SUBGROUP_FEATURE_VOTE_BIT |
+                                           VK_SUBGROUP_FEATURE_BALLOT_BIT;
          properties->quadOperationsInAllStages = false;
          break;
       }
index af9926e..abcfc2d 100644 (file)
@@ -80,6 +80,9 @@ tu_spirv_to_nir(struct tu_device *dev,
          .demote_to_helper_invocation = true,
          .vk_memory_model = true,
          .vk_memory_model_device_scope = true,
+         .subgroup_basic = true,
+         .subgroup_ballot = true,
+         .subgroup_vote = true,
       },
    };