i965/fp: Fix segfault on gen4 TXB instructions.
authorEric Anholt <eric@anholt.net>
Mon, 26 Nov 2012 21:39:11 +0000 (13:39 -0800)
committerEric Anholt <eric@anholt.net>
Fri, 30 Nov 2012 06:34:28 +0000 (22:34 -0800)
The gen4 simd16 workaround looks at ir->type to determine how much
storage to allocate for the simd16 value.  In fragment programs,
texturing only ever returns float vec4s (unlike GLSL, which can also
have scalar floats or vector integers), so this is the right type.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56962
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_fs_fp.cpp

index bb8cd9a79a8d85c1fb84065eab0791f2cfca2fc7..4be7779edf97449f9830ce70cae6365ed4180e8b 100644 (file)
@@ -441,6 +441,8 @@ fs_visitor::emit_fragment_program_code()
             break;
          }
 
+         ir->type = glsl_type::vec4_type;
+
          const glsl_type *coordinate_type;
          switch (fpi->TexSrcTarget) {
          case TEXTURE_1D_INDEX: