diff options
author | Eric Anholt <eric@anholt.net> | 2010-12-13 13:37:54 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-12-27 14:30:41 -0800 |
commit | d62a383d536831a8e2edb9f952b3ba07edda813f (patch) | |
tree | 843ceb6b10b5a6f9ecc6573c534e8e800da7f934 /src/mesa/drivers | |
parent | c043c5ae0097952e181711f23d717c6efbb19f34 (diff) |
i965: Fix gl_FragCoord.z setup on gen6.
Fixes glsl-bug-22603.
(cherry picked from commit 036c817f77f71e7c4b17571ae100a9bc93d8fe5b)
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index c3cbe0df618..4eead32cbbd 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -474,8 +474,13 @@ fs_visitor::emit_fragcoord_interpolation(ir_variable *ir) wpos.reg_offset++; /* gl_FragCoord.z */ - emit(fs_inst(FS_OPCODE_LINTERP, wpos, this->delta_x, this->delta_y, - interp_reg(FRAG_ATTRIB_WPOS, 2))); + if (intel->gen >= 6) { + emit(fs_inst(BRW_OPCODE_MOV, wpos, + fs_reg(brw_vec8_grf(c->source_depth_reg, 0)))); + } else { + emit(fs_inst(FS_OPCODE_LINTERP, wpos, this->delta_x, this->delta_y, + interp_reg(FRAG_ATTRIB_WPOS, 2))); + } wpos.reg_offset++; /* gl_FragCoord.w: Already set up in emit_interpolation */ |