Mesa (master): llvmpipe: fix incorrect front-facing value for fragment shader

Brian Paul brianp at kemper.freedesktop.org
Tue Apr 20 17:46:10 UTC 2010


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

Author: Brian Paul <brianp at vmware.com>
Date:   Tue Apr 20 11:43:58 2010 -0600

llvmpipe: fix incorrect front-facing value for fragment shader

The TGSI convention is +1 for front-facing, -1 for back-facing
Fixes glean glsl1 gl_FrontFacing tests.

---

 src/gallium/drivers/llvmpipe/lp_setup_tri.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/llvmpipe/lp_setup_tri.c b/src/gallium/drivers/llvmpipe/lp_setup_tri.c
index a950534..f8a5816 100644
--- a/src/gallium/drivers/llvmpipe/lp_setup_tri.c
+++ b/src/gallium/drivers/llvmpipe/lp_setup_tri.c
@@ -163,12 +163,17 @@ setup_fragcoord_coef(struct lp_setup_context *setup,
 }
 
 
+/**
+ * Setup the fragment input attribute with the front-facing value.
+ * \param frontface  is the triangle front facing?
+ */
 static void setup_facing_coef( struct lp_setup_context *setup,
                                struct lp_rast_triangle *tri,
                                unsigned slot,
                                boolean frontface )
 {
-   constant_coef( setup, tri, slot, 1.0f - frontface, 0 );
+   /* convert TRUE to 1.0 and FALSE to -1.0 */
+   constant_coef( setup, tri, slot, 2.0f * frontface - 1.0f, 0 );
    constant_coef( setup, tri, slot, 0.0f, 1 ); /* wasted */
    constant_coef( setup, tri, slot, 0.0f, 2 ); /* wasted */
    constant_coef( setup, tri, slot, 0.0f, 3 ); /* wasted */




More information about the mesa-commit mailing list