i965: Fix GS push inputs with enhanced layouts.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 14 Nov 2016 23:59:57 +0000 (15:59 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 19 Nov 2016 20:30:25 +0000 (12:30 -0800)
We weren't taking first_component into account when handling GS push
inputs.  We hardly ever push GS inputs, so this was not caught by
existing tests.  When I started using component qualifiers for the
gl_ClipDistance arrays, glsl-1.50-transform-feedback-type-and-size
started catching this.

Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/mesa/drivers/dri/i965/brw_fs_nir.cpp

index e84e371800b35183d83e5221d098c3a400d782dd..e770502b7231f1d338edbcfee9142b4a9f3513d4 100644 (file)
@@ -1984,7 +1984,7 @@ fs_visitor::emit_gs_input_load(const fs_reg &dst,
       } else {
          for (unsigned i = 0; i < num_components; i++) {
             bld.MOV(offset(dst, bld, i),
-                    fs_reg(ATTR, imm_offset + i, dst.type));
+                    fs_reg(ATTR, imm_offset + i + first_component, dst.type));
          }
       }
       return;