nir/print: Don't print sampler_index for txf
authorAlyssa Rosenzweig <alyssa@collabora.com>
Thu, 30 Mar 2023 18:08:38 +0000 (14:08 -0400)
committerMarge Bot <emma+marge@anholt.net>
Fri, 7 Apr 2023 01:15:41 +0000 (01:15 +0000)
NIR's docs for sampler_index say

    The following operations do not require a sampler and, as such, this
    field should be ignored:
       - nir_texop_txf
       - nir_texop_txf_ms
       - nir_texop_txs
       - nir_texop_query_levels
       - nir_texop_texture_samples
       - nir_texop_samples_identical

Contrary to this documentation, we were still printing the sampler_index anyway,
even though the value is formally undefined. This was helpful for
PIPE_CAP_TEXTURE_BUFFER_SAMPLER drivers that (despite the NIR docs) respected the
sampler_index anyway. There are no longer any such drivers, so we should stop
printing sampler_index for txf to avoid confusion (and noise).

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22223>

src/compiler/nir/nir_print.c

index c443fcc..6073e41 100644 (file)
@@ -1413,14 +1413,12 @@ print_tex_instr(nir_tex_instr *instr, print_state *state)
       fprintf(fp, " } (offsets)");
    }
 
-   if (instr->op != nir_texop_txf_ms_fb) {
-      if (!has_texture_deref) {
-         fprintf(fp, ", %u (texture)", instr->texture_index);
-      }
+   if (instr->op != nir_texop_txf_ms_fb && !has_texture_deref) {
+      fprintf(fp, ", %u (texture)", instr->texture_index);
+   }
 
-      if (!has_sampler_deref) {
-         fprintf(fp, ", %u (sampler)", instr->sampler_index);
-      }
+   if (nir_tex_instr_need_sampler(instr) && !has_sampler_deref) {
+      fprintf(fp, ", %u (sampler)", instr->sampler_index);
    }
 
    if (instr->texture_non_uniform) {