diff options
author | Chris Forbes <[email protected]> | 2013-08-27 19:35:49 +1200 |
---|---|---|
committer | Chris Forbes <[email protected]> | 2013-09-01 19:50:59 +1200 |
commit | f35dea05b1329b9303a11fb803897fb189ff99b4 (patch) | |
tree | 505157eb3a5c3c442811db9ef982a547e3b38e26 /src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | |
parent | 4cc692e355e1f2a15c0d3613aec5dfc3a8bf8935 (diff) |
i965/fs: Gen4: Zero out extra coordinates when using shadow compare
Fixes broken rendering if these MRFs contained anything other than zero.
NOTE: This is a candidate for stable branches.
Signed-off-by: Chris Forbes <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_fs_visitor.cpp')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp index b0494364a1d..1e01d39d8b4 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp @@ -876,7 +876,13 @@ fs_visitor::emit_texture_gen4(ir_texture *ir, fs_reg dst, fs_reg coordinate, emit(MOV(fs_reg(MRF, base_mrf + mlen + i), coordinate)); coordinate.reg_offset++; } - /* gen4's SIMD8 sampler always has the slots for u,v,r present. */ + + /* gen4's SIMD8 sampler always has the slots for u,v,r present. + * the unused slots must be zeroed. + */ + for (int i = ir->coordinate->type->vector_elements; i < 3; i++) { + emit(MOV(fs_reg(MRF, base_mrf + mlen + i), fs_reg(0.0f))); + } mlen += 3; if (ir->op == ir_tex) { |