Mesa (master): st/mesa: negate DDY to match GL semantics

Brian Paul brianp at kemper.freedesktop.org
Mon Dec 7 16:04:40 UTC 2009


Module: Mesa
Branch: master
Commit: 8ce17134431ec27666e8fba2fa4bd22ba3f3ed18
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8ce17134431ec27666e8fba2fa4bd22ba3f3ed18

Author: Brian Paul <brianp at vmware.com>
Date:   Mon Dec  7 09:00:57 2009 -0700

st/mesa: negate DDY to match GL semantics

This fixes the regression from commit 884007546c98b1779bf266ec5111b1e7e2b68b2e
Fixes bug 25456 (piglit derivs regression).

---

 src/mesa/state_tracker/st_mesa_to_tgsi.c |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.c b/src/mesa/state_tracker/st_mesa_to_tgsi.c
index 5e76f4d..bf80274 100644
--- a/src/mesa/state_tracker/st_mesa_to_tgsi.c
+++ b/src/mesa/state_tracker/st_mesa_to_tgsi.c
@@ -396,6 +396,23 @@ static void emit_swz( struct st_translate *t,
 }
 
 
+/**
+ * Negate the value of DDY to match GL semantics where (0,0) is the
+ * lower-left corner of the window.
+ * Note that the GL_ARB_fragment_coord_conventions extension will
+ * effect this someday.
+ */
+static void emit_ddy( struct st_translate *t,
+                      struct ureg_dst dst,
+                      const struct prog_src_register *SrcReg )
+{
+   struct ureg_program *ureg = t->ureg;
+   struct ureg_src src = translate_src( t, SrcReg );
+   if(1)   src = ureg_negate( src );
+   ureg_DDY( ureg, dst, src );
+}
+
+
 
 static unsigned
 translate_opcode( unsigned op )
@@ -619,7 +636,9 @@ compile_instruction(
       ureg_MOV( ureg, dst[0], ureg_imm1f(ureg, 0.5) );
       break;
 		 
-
+   case OPCODE_DDY:
+      emit_ddy( t, dst[0], &inst->SrcReg[0] );
+      break;
 
    default:
       ureg_insn( ureg, 




More information about the mesa-commit mailing list