ir3: Use lower_index_to_offset
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Sun, 26 Feb 2023 04:03:58 +0000 (23:03 -0500)
committerMarge Bot <emma+marge@anholt.net>
Mon, 6 Mar 2023 21:38:32 +0000 (21:38 +0000)
Instead of doing the add ourselves.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21546>

src/freedreno/ir3/ir3_compiler_nir.c
src/freedreno/ir3/ir3_nir.c

index 6484a37..cc95794 100644 (file)
@@ -2879,10 +2879,6 @@ get_tex_samp_tex_src(struct ir3_context *ctx, nir_tex_instr *tex)
       if (texture_idx >= 0) {
          texture = ir3_get_src(ctx, &tex->src[texture_idx].src)[0];
          texture = ir3_COV(ctx->block, texture, TYPE_U32, TYPE_U16);
-         if (tex->texture_index != 0) {
-            texture = ir3_ADD_U(b, texture, 0, create_immed_typed(b, tex->texture_index, TYPE_U16), 0);
-            texture->dsts[0]->flags |= IR3_REG_HALF;
-         }
       } else {
          /* TODO what to do for dynamic case? I guess we only need the
           * max index for astc srgb workaround so maybe not a problem
@@ -2898,10 +2894,6 @@ get_tex_samp_tex_src(struct ir3_context *ctx, nir_tex_instr *tex)
       if (sampler_idx >= 0) {
          sampler = ir3_get_src(ctx, &tex->src[sampler_idx].src)[0];
          sampler = ir3_COV(ctx->block, sampler, TYPE_U32, TYPE_U16);
-         if (tex->sampler_index != 0) {
-            sampler = ir3_ADD_U(b, sampler, 0, create_immed_typed(b, tex->sampler_index, TYPE_U16), 0);
-            sampler->dsts[0]->flags |= IR3_REG_HALF;
-         }
       } else {
          sampler = create_immed_typed(ctx->block, tex->sampler_index, TYPE_U16);
          info.samp_idx = tex->texture_index;
index 59389bf..45bdb6c 100644 (file)
@@ -329,6 +329,7 @@ ir3_finalize_nir(struct ir3_compiler *compiler, nir_shader *s)
       .lower_rect = 0,
       .lower_tg4_offsets = true,
       .lower_invalid_implicit_lod = true,
+      .lower_index_to_offset = true,
    };
 
    if (compiler->gen >= 4) {