tgsi: (trivial) only verify target for is_tex instructions
authorRoland Scheidegger <sroland@vmware.com>
Wed, 30 Mar 2016 02:25:45 +0000 (04:25 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Wed, 30 Mar 2016 02:26:54 +0000 (04:26 +0200)
d3d10 state tracker does not encode (valid) target (only offsets are
really used from the texture bits), since that information always comes
from the sview dcl, and not the instruction (note the meaning of target
is actually slightly different between gl and d3d10 in any case, because
d3d10 target does never include shadow bit).
Also move the msaa sampler identification as well - would need to set that
on the sview not sampler, so while this does not fix it make it at least
obvious it won't work with sample instructions.

src/gallium/auxiliary/tgsi/tgsi_scan.c

index c71c7770bfb4555d64850a0eccc7dae1ec9dfe38..76a6fef8b445bfd0015cf1b1b7a367242f1f20ef 100644 (file)
@@ -184,14 +184,14 @@ scan_instruction(struct tgsi_shader_info *info,
       /* Texture samplers */
       if (src->Register.File == TGSI_FILE_SAMPLER) {
          const unsigned index = src->Register.Index;
-         const unsigned target = fullinst->Texture.Texture;
 
          assert(fullinst->Instruction.Texture);
          assert(index < Elements(info->is_msaa_sampler));
          assert(index < PIPE_MAX_SAMPLERS);
-         assert(target < TGSI_TEXTURE_UNKNOWN);
 
          if (tgsi_get_opcode_info(fullinst->Instruction.Opcode)->is_tex) {
+            const unsigned target = fullinst->Texture.Texture;
+            assert(target < TGSI_TEXTURE_UNKNOWN);
             /* for texture instructions, check that the texture instruction
              * target matches the previous sampler view declaration (if there
              * was one.)
@@ -205,12 +205,11 @@ scan_instruction(struct tgsi_shader_info *info,
                 */
                assert(info->sampler_targets[index] == target);
             }
-         }
-
-         /* MSAA samplers */
-         if (target == TGSI_TEXTURE_2D_MSAA ||
-             target == TGSI_TEXTURE_2D_ARRAY_MSAA) {
-            info->is_msaa_sampler[src->Register.Index] = TRUE;
+            /* MSAA samplers */
+            if (target == TGSI_TEXTURE_2D_MSAA ||
+                target == TGSI_TEXTURE_2D_ARRAY_MSAA) {
+               info->is_msaa_sampler[src->Register.Index] = TRUE;
+            }
          }
       }