mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
Calculate DEPTH_SCALE correctly for polygon offset.
This commit is contained in:
parent
8be4747fd6
commit
c664f0c515
3 changed files with 5 additions and 1 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue