Mesa (master): i965: Fix gl_FragCoord.z setup on gen6.
Eric Anholt
anholt at kemper.freedesktop.org
Mon Dec 13 22:05:56 UTC 2010
Module: Mesa
Branch: master
Commit: 036c817f77f71e7c4b17571ae100a9bc93d8fe5b
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=036c817f77f71e7c4b17571ae100a9bc93d8fe5b
Author: Eric Anholt <eric at anholt.net>
Date: Mon Dec 13 13:37:54 2010 -0800
i965: Fix gl_FragCoord.z setup on gen6.
Fixes glsl-bug-22603.
---
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 c3cbe0d..4eead32 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 */
More information about the mesa-commit
mailing list