Module: Mesa
Branch: mesa_7_6_branch
Commit: 095db818c6c7ed5706b5f31d17d0cb19c03cb67a
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=095db818c6c7ed5706b5f31d17d0cb19c03cb67a

Author: Alex Deucher <[email protected]>
Date:   Sat Sep 19 14:46:06 2009 -0400

r600: fix polygon offset

---

 src/mesa/drivers/dri/r600/r700_state.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/dri/r600/r700_state.c 
b/src/mesa/drivers/dri/r600/r700_state.c
index 2a0b419..d8190ef 100644
--- a/src/mesa/drivers/dri/r600/r700_state.c
+++ b/src/mesa/drivers/dri/r600/r700_state.c
@@ -1122,20 +1122,25 @@ static void r700PolygonOffset(GLcontext * ctx, GLfloat 
factor, GLfloat units) //
        context_t *context = R700_CONTEXT(ctx);
        R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw);
        GLfloat constant = units;
+       GLchar depth = 0;
+
+       R600_STATECHANGE(context, poly);
 
        switch (ctx->Visual.depthBits) {
        case 16:
                constant *= 4.0;
+               depth = -16;
                break;
        case 24:
                constant *= 2.0;
+               depth = -24;
                break;
        }
 
        factor *= 12.0;
-
-       R600_STATECHANGE(context, poly);
-
+       SETfield(r700->PA_SU_POLY_OFFSET_DB_FMT_CNTL.u32All, depth,
+                POLY_OFFSET_NEG_NUM_DB_BITS_shift, 
POLY_OFFSET_NEG_NUM_DB_BITS_mask);
+       //r700->PA_SU_POLY_OFFSET_CLAMP.f32All = constant; //???
        r700->PA_SU_POLY_OFFSET_FRONT_SCALE.f32All = factor;
        r700->PA_SU_POLY_OFFSET_FRONT_OFFSET.f32All = constant;
        r700->PA_SU_POLY_OFFSET_BACK_SCALE.f32All = factor;

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to