tgsi/scan: fix num_inputs/num_outputs for shaders with overlapping arrays
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Fri, 7 Oct 2016 10:53:55 +0000 (12:53 +0200)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Wed, 12 Oct 2016 16:50:10 +0000 (18:50 +0200)
v2: remove a tautological left-over assert (Marek)

Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net> (v1)
Reviewed-by: Dave Airlie <airlied@redhat.com> (v1)
src/gallium/auxiliary/tgsi/tgsi_scan.c

index c7745ce..b862078 100644 (file)
@@ -401,12 +401,7 @@ scan_declaration(struct tgsi_shader_info *info,
          info->input_cylindrical_wrap[reg] = (ubyte)fulldecl->Interp.CylindricalWrap;
 
          /* Vertex shaders can have inputs with holes between them. */
-         if (info->processor == PIPE_SHADER_VERTEX)
-            info->num_inputs = MAX2(info->num_inputs, reg + 1);
-         else {
-            info->num_inputs++;
-            assert(reg < info->num_inputs);
-         }
+         info->num_inputs = MAX2(info->num_inputs, reg + 1);
 
          if (semName == TGSI_SEMANTIC_PRIMID)
             info->uses_primid = TRUE;
@@ -456,8 +451,7 @@ scan_declaration(struct tgsi_shader_info *info,
       else if (file == TGSI_FILE_OUTPUT) {
          info->output_semantic_name[reg] = (ubyte) semName;
          info->output_semantic_index[reg] = (ubyte) semIndex;
-         info->num_outputs++;
-         assert(reg < info->num_outputs);
+         info->num_outputs = MAX2(info->num_outputs, reg + 1);
 
          if (semName == TGSI_SEMANTIC_COLOR)
             info->colors_written |= 1 << semIndex;