diff options
| author | Eric Anholt <eric@anholt.net> | 2010-12-13 13:37:54 -0800 | 
|---|---|---|
| committer | Eric Anholt <eric@anholt.net> | 2010-12-13 14:02:34 -0800 | 
| commit | 036c817f77f71e7c4b17571ae100a9bc93d8fe5b (patch) | |
| tree | 2552b77060dbb189f5445056be3620026a95ae28 /src/mesa/drivers | |
| parent | 5fbd8da8dfb89c61f0ed143ad3f21a2b8752a476 (diff) | |
i965: Fix gl_FragCoord.z setup on gen6.
Fixes glsl-bug-22603.
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 c3cbe0df61..4eead32cbb 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 */  | 
