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

Author: Faith Ekstrand <[email protected]>
Date:   Tue Feb 21 07:42:30 2023 -0600

panvk: Drop our manual SSBO size handling

Reviewed-by: Caio Oliveira <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21446>

---

 .../vulkan/panvk_vX_nir_lower_descriptors.c        | 31 ----------------------
 src/panfrost/vulkan/panvk_vX_shader.c              |  1 +
 2 files changed, 1 insertion(+), 31 deletions(-)

diff --git a/src/panfrost/vulkan/panvk_vX_nir_lower_descriptors.c 
b/src/panfrost/vulkan/panvk_vX_nir_lower_descriptors.c
index bc0cb1fbafe..e4739127bfb 100644
--- a/src/panfrost/vulkan/panvk_vX_nir_lower_descriptors.c
+++ b/src/panfrost/vulkan/panvk_vX_nir_lower_descriptors.c
@@ -296,35 +296,6 @@ lower_res_intrinsic(nir_builder *b, nir_intrinsic_instr 
*intrin,
    return true;
 }
 
-static bool
-lower_get_ssbo_size(nir_builder *b, nir_intrinsic_instr *intrin,
-                    const struct apply_descriptors_ctx *ctx)
-{
-   b->cursor = nir_before_instr(&intrin->instr);
-
-   nir_address_format addr_format =
-      addr_format_for_desc_type(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, ctx);
-
-   assert(intrin->src[0].is_ssa);
-   nir_ssa_def *desc = build_buffer_addr_for_res_index(b, intrin->src[0].ssa,
-                                                          addr_format, ctx);
-
-   switch (addr_format) {
-   case nir_address_format_64bit_bounded_global:
-   case nir_address_format_64bit_global_32bit_offset: {
-      nir_ssa_def *size = nir_channel(b, desc, 2);
-      nir_ssa_def_rewrite_uses(&intrin->dest.ssa, size);
-      nir_instr_remove(&intrin->instr);
-      break;
-   }
-
-   default:
-      unreachable("Unsupported address format");
-   }
-
-   return true;
-}
-
 static void
 get_resource_deref_binding(nir_deref_instr *deref,
                            uint32_t *set, uint32_t *binding,
@@ -587,8 +558,6 @@ lower_intrinsic(nir_builder *b, nir_intrinsic_instr *intr,
    case nir_intrinsic_vulkan_resource_reindex:
    case nir_intrinsic_load_vulkan_descriptor:
       return lower_res_intrinsic(b, intr, ctx);
-   case nir_intrinsic_get_ssbo_size:
-      return lower_get_ssbo_size(b, intr, ctx);
    case nir_intrinsic_image_deref_store:
    case nir_intrinsic_image_deref_load:
    case nir_intrinsic_image_deref_atomic_add:
diff --git a/src/panfrost/vulkan/panvk_vX_shader.c 
b/src/panfrost/vulkan/panvk_vX_shader.c
index fde8445ca98..ac6853a441f 100644
--- a/src/panfrost/vulkan/panvk_vX_shader.c
+++ b/src/panfrost/vulkan/panvk_vX_shader.c
@@ -241,6 +241,7 @@ panvk_per_arch(shader_create)(struct panvk_device *dev,
       .caps = {
          .variable_pointers = true,
       },
+      .use_deref_buffer_array_length = true,
       .ubo_addr_format = nir_address_format_32bit_index_offset,
       .ssbo_addr_format = dev->vk.enabled_features.robustBufferAccess ?
                           nir_address_format_64bit_bounded_global :

Reply via email to