nir/print: Print texture and sampler indices
authorJason Ekstrand <jason.ekstrand@intel.com>
Sat, 30 Jun 2018 06:08:05 +0000 (23:08 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Sat, 7 Jul 2018 16:32:33 +0000 (09:32 -0700)
Commit 5fb69daa6076e56b deleted support from nir_print for printing the
texture and sampler indices on texture instructions.  This commit just
brings it back as best as we can.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/compiler/nir/nir_print.c

index 32839fa4dc910ccea29cc824ec9cd066efa7a825..18860db0058b37a7d8da1a0648492516742de7b4 100644 (file)
@@ -795,6 +795,7 @@ print_tex_instr(nir_tex_instr *instr, print_state *state)
       break;
    }
 
+   bool has_texture_deref = false, has_sampler_deref = false;
    for (unsigned i = 0; i < instr->num_srcs; i++) {
       print_src(&instr->src[i].src, state);
 
@@ -832,9 +833,11 @@ print_tex_instr(nir_tex_instr *instr, print_state *state)
          fprintf(fp, "(ddy)");
          break;
       case nir_tex_src_texture_deref:
+         has_texture_deref = true;
          fprintf(fp, "(texture_deref)");
          break;
       case nir_tex_src_sampler_deref:
+         has_sampler_deref = true;
          fprintf(fp, "(sampler_deref)");
          break;
       case nir_tex_src_texture_offset:
@@ -858,6 +861,14 @@ print_tex_instr(nir_tex_instr *instr, print_state *state)
    if (instr->op == nir_texop_tg4) {
       fprintf(fp, "%u (gather_component), ", instr->component);
    }
+
+   if (!has_texture_deref) {
+      fprintf(fp, "%u (texture), ", instr->texture_index);
+   }
+
+   if (!has_sampler_deref) {
+      fprintf(fp, "%u (sampler), ", instr->sampler_index);
+   }
 }
 
 static void