intel: Fix ClearDepth to not be affected by DepthRange.
authorEric Anholt <eric@anholt.net>
Tue, 14 Jul 2009 21:49:03 +0000 (14:49 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 14 Jul 2009 22:14:52 +0000 (15:14 -0700)
Fixes new piglit depthrange-clear.c test.

src/mesa/drivers/dri/intel/intel_clear.c

index 0d0cf39fde208aa6252df47991bba6b18a4db76c..13b433dd175e08b6eaca4d811ae93ec0eaabd1e7 100644 (file)
@@ -143,7 +143,8 @@ intel_clear_tris(GLcontext *ctx, GLbitfield mask)
                    GL_POLYGON_BIT |
                    GL_STENCIL_BUFFER_BIT |
                    GL_TRANSFORM_BIT |
-                   GL_CURRENT_BIT);
+                   GL_CURRENT_BIT |
+                   GL_VIEWPORT_BIT);
    saved_active_texture = ctx->Texture.CurrentUnit;
 
    /* Disable existing GL state we don't want to apply to a clear. */
@@ -209,6 +210,11 @@ intel_clear_tris(GLcontext *ctx, GLbitfield mask)
    /* convert clear Z from [0,1] to NDC coord in [-1,1] */
    dst_z = -1.0 + 2.0 * ctx->Depth.Clear;
 
+   /* The ClearDepth value is unaffected by DepthRange, so do a default
+    * mapping.
+    */
+   _mesa_DepthRange(0.0, 1.0);
+
    /* Prepare the vertices, which are the same regardless of which buffer we're
     * drawing to.
     */