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

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

anv: Drop our manual SSBO size handling

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

---

 src/intel/vulkan/anv_nir_apply_pipeline_layout.c | 27 ------------------------
 src/intel/vulkan/anv_pipeline.c                  |  1 +
 2 files changed, 1 insertion(+), 27 deletions(-)

diff --git a/src/intel/vulkan/anv_nir_apply_pipeline_layout.c 
b/src/intel/vulkan/anv_nir_apply_pipeline_layout.c
index d3a07fe9c13..60c6be06a93 100644
--- a/src/intel/vulkan/anv_nir_apply_pipeline_layout.c
+++ b/src/intel/vulkan/anv_nir_apply_pipeline_layout.c
@@ -820,33 +820,6 @@ lower_direct_buffer_instr(nir_builder *b, nir_instr 
*instr, void *_state)
    case nir_intrinsic_deref_atomic_fcomp_swap:
       return try_lower_direct_buffer_intrinsic(b, intrin, true, state);
 
-   case nir_intrinsic_get_ssbo_size: {
-      /* The get_ssbo_size intrinsic always just takes a
-       * index/reindex intrinsic.
-       */
-      nir_intrinsic_instr *idx_intrin =
-         find_descriptor_for_index_src(intrin->src[0], state);
-      if (idx_intrin == NULL || !descriptor_has_bti(idx_intrin, state))
-         return false;
-
-      b->cursor = nir_before_instr(&intrin->instr);
-
-      /* We just checked that this is a BTI descriptor */
-      const nir_address_format addr_format =
-         nir_address_format_32bit_index_offset;
-
-      nir_ssa_def *buffer_addr =
-         build_buffer_addr_for_idx_intrin(b, idx_intrin, addr_format, state);
-
-      b->cursor = nir_before_instr(&intrin->instr);
-      nir_ssa_def *bti = nir_channel(b, buffer_addr, 0);
-
-      nir_instr_rewrite_src(&intrin->instr, &intrin->src[0],
-                            nir_src_for_ssa(bti));
-      _mesa_set_add(state->lowered_instrs, intrin);
-      return true;
-   }
-
    case nir_intrinsic_load_vulkan_descriptor:
       if (nir_intrinsic_desc_type(intrin) ==
           VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR)
diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
index 898495f9ac5..4f0c8858e25 100644
--- a/src/intel/vulkan/anv_pipeline.c
+++ b/src/intel/vulkan/anv_pipeline.c
@@ -208,6 +208,7 @@ anv_shader_stage_to_nir(struct anv_device *device,
          .workgroup_memory_explicit_layout = true,
          .fragment_shading_rate = pdevice->info.ver >= 11,
       },
+      .use_deref_buffer_array_length = true,
       .ubo_addr_format =
          anv_nir_ubo_addr_format(pdevice, 
device->vk.enabled_features.robustBufferAccess),
       .ssbo_addr_format =

Reply via email to