summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/drivers/dri/r300/r300_state.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_state.c b/src/mesa/drivers/dri/r300/r300_state.c
index 16077560965..b1c1bdef237 100644
--- a/src/mesa/drivers/dri/r300/r300_state.c
+++ b/src/mesa/drivers/dri/r300/r300_state.c
@@ -975,9 +975,18 @@ static void r300DepthRange(GLcontext * ctx, GLclampd nearval, GLclampd farval)
static void r300PolygonOffset(GLcontext * ctx, GLfloat factor, GLfloat units)
{
r300ContextPtr rmesa = R300_CONTEXT(ctx);
- GLfloat constant = units * /*rmesa->state.depth.scale*/4;
+ GLfloat constant = units;
+
+ switch (ctx->Visual.depthBits) {
+ case 16:
+ constant *= 4.0;
+ break;
+ case 24:
+ constant *= 2.0;
+ break;
+ }
- factor *= 12;
+ factor *= 12.0;
/* fprintf(stderr, "%s f:%f u:%f\n", __FUNCTION__, factor, constant); */