mesa: Branch 'master'

Patrice Mandin pmandin at kemper.freedesktop.org
Fri Feb 16 19:27:35 UTC 2007


 src/mesa/drivers/dri/nouveau/nv10_state.c |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

New commits:
diff-tree f942dc5522682b70fb05df5b2d5d732bb65e6fe2 (from 9131536f00cca586be7dfc1cfbc47188c78e4920)
Author: Patrice Mandin <pmandin at caramail.com>
Date:   Fri Feb 16 20:26:57 2007 +0100

    nouveau: nv10: set clear value for 16 and 24 bits depth

diff --git a/src/mesa/drivers/dri/nouveau/nv10_state.c b/src/mesa/drivers/dri/nouveau/nv10_state.c
index 803dd96..cc0f5a7 100644
--- a/src/mesa/drivers/dri/nouveau/nv10_state.c
+++ b/src/mesa/drivers/dri/nouveau/nv10_state.c
@@ -121,16 +121,27 @@ static void nv10ClearColor(GLcontext *ct
 
 static void nv10ClearDepth(GLcontext *ctx, GLclampd d)
 {
-	/* FIXME: check if 16 or 24/32 bits depth buffer */
 	nouveauContextPtr nmesa = NOUVEAU_CONTEXT(ctx);
-	nmesa->clear_value=((nmesa->clear_value&0x000000FF)|(((uint32_t)(d*0xFFFFFF))<<8));
+
+	switch (ctx->DrawBuffer->_DepthBuffer->DepthBits) {
+		case 16:
+			nmesa->clear_value = (uint32_t)(d*0x7FFF);
+			break;
+		case 24:
+			nmesa->clear_value = ((nmesa->clear_value&0x000000FF) |
+				(((uint32_t)(d*0xFFFFFF))<<8));
+			break;
+	}
 }
 
 static void nv10ClearStencil(GLcontext *ctx, GLint s)
 {
-	/* FIXME: not valid for 16 bits depth buffer (0 stencil bits) */
 	nouveauContextPtr nmesa = NOUVEAU_CONTEXT(ctx);
-	nmesa->clear_value=((nmesa->clear_value&0xFFFFFF00)|(s&0x000000FF));
+
+	if (ctx->DrawBuffer->_DepthBuffer->DepthBits == 24) {
+		nmesa->clear_value = ((nmesa->clear_value&0xFFFFFF00)|
+			(s&0x000000FF));
+	}
 }
 
 static void nv10ClipPlane(GLcontext *ctx, GLenum plane, const GLfloat *equation)



More information about the mesa-commit mailing list