From: Keith Whitwell Date: Thu, 30 Dec 2004 16:30:26 +0000 (+0000) Subject: Calculate DEPTH_SCALE correctly for polygon offset. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c664f0c5155da800c34de1783754313e86654eda;p=mesa.git Calculate DEPTH_SCALE correctly for polygon offset. --- diff --git a/src/mesa/drivers/dri/unichrome/via_context.c b/src/mesa/drivers/dri/unichrome/via_context.c index b3cc66f087c..4c70af60c83 100644 --- a/src/mesa/drivers/dri/unichrome/via_context.c +++ b/src/mesa/drivers/dri/unichrome/via_context.c @@ -356,6 +356,7 @@ viaCreateContext(const __GLcontextModes *mesaVis, vmesa->depth_max = (GLfloat)0xffff; vmesa->depth_clear_mask = 0xf << 28; vmesa->ClearDepth = 0xffff; + vmesa->polygon_offset_scale = 1.0 / vmesa->depth_max; break; case 24: vmesa->hasDepth = GL_TRUE; @@ -370,6 +371,7 @@ viaCreateContext(const __GLcontextModes *mesaVis, vmesa->have_hw_stencil = GL_TRUE; vmesa->stencilBits = mesaVis->stencilBits; vmesa->stencil_clear_mask = 0x1 << 28; + vmesa->polygon_offset_scale = 2.0 / vmesa->depth_max; break; case 32: vmesa->hasDepth = GL_TRUE; @@ -380,6 +382,7 @@ viaCreateContext(const __GLcontextModes *mesaVis, vmesa->depth_clear_mask = 0; vmesa->ClearDepth = 0xffffffff; vmesa->depth_clear_mask = 0xf << 28; + vmesa->polygon_offset_scale = 2.0 / vmesa->depth_max; break; default: assert(0); diff --git a/src/mesa/drivers/dri/unichrome/via_context.h b/src/mesa/drivers/dri/unichrome/via_context.h index 25def2e0758..a409b8c6b72 100644 --- a/src/mesa/drivers/dri/unichrome/via_context.h +++ b/src/mesa/drivers/dri/unichrome/via_context.h @@ -103,6 +103,7 @@ struct via_context_t { GLuint depth_clear_mask; GLuint stencil_clear_mask; GLfloat depth_max; + GLfloat polygon_offset_scale; GLubyte *dma; viaRegion tex; diff --git a/src/mesa/drivers/dri/unichrome/via_tris.c b/src/mesa/drivers/dri/unichrome/via_tris.c index 6dbbfe0343a..8c16d01000e 100644 --- a/src/mesa/drivers/dri/unichrome/via_tris.c +++ b/src/mesa/drivers/dri/unichrome/via_tris.c @@ -222,7 +222,7 @@ static struct { } while (0) -#define DEPTH_SCALE (1.0 / 0xffff) +#define DEPTH_SCALE vmesa->polygon_offset_scale #define UNFILLED_TRI unfilled_tri #define UNFILLED_QUAD unfilled_quad #define VERT_X(_v) _v->v.x