i965/gs: Set force_writemask_all when setting up g0.
authorPaul Berry <stereotype441@gmail.com>
Sat, 19 Oct 2013 20:26:27 +0000 (13:26 -0700)
committerPaul Berry <stereotype441@gmail.com>
Fri, 25 Oct 2013 05:00:37 +0000 (22:00 -0700)
commit3da2c5123d043a670ebad7d01c6cba37c915b4c9
tree35cbabf8d920655f236452c7e22a3bb3d02d7177
parent172aec281d3d4eb0709977e0748d137e56aacd90
i965/gs: Set force_writemask_all when setting up g0.

All geometry shaders begin this instruction:

    mov(1) g0.2<1>:ud 0x0:ud { align1 }

which sets up GRF0 properly for scratch reads and writes.  Since this
instruction has a SIMD size of 1, it will only have an effect if the
first channel is enabled.  In practice, the hardware seems to always
dispatch geometry shaders with the first channel enabled, but I can't
find anything in the docs to guarantee that.

So to be on the safe side, set force_writemask_all on the instruction,
which guarantees that it will have the desired effect regardless of
which channels are enabled.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp