aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i915/i915_state.c
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2011-07-12 10:48:40 -0700
committerEric Anholt <[email protected]>2011-07-18 11:26:33 -0700
commitfc4fba52cf7e9616c70dd76b4d6bdba6582e157b (patch)
tree94793fe750c01dd4ad9571eec4fbfd1d6986857f /src/mesa/drivers/dri/i915/i915_state.c
parent4c47fce92e381cb182b51ce6d0727c0a1365e8b0 (diff)
i915: Disable the depth test whenever we don't have a depth buffer.
We were disabling it once at the moment we changed draw buffers, but later enabling of depth test could turn it back on. Fixes fbo-nodepth-test. Note that ctx->DrawBuffer has to be checked because during context create we get called while it's still unset. However, we know we'll get an intel_draw_buffer() after that, so it's safe to make a silly choice at this point. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=30080
Diffstat (limited to 'src/mesa/drivers/dri/i915/i915_state.c')
-rw-r--r--src/mesa/drivers/dri/i915/i915_state.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i915/i915_state.c b/src/mesa/drivers/dri/i915/i915_state.c
index 99212ad4fd1..73dda65261e 100644
--- a/src/mesa/drivers/dri/i915/i915_state.c
+++ b/src/mesa/drivers/dri/i915/i915_state.c
@@ -375,6 +375,9 @@ i915DepthMask(struct gl_context * ctx, GLboolean flag)
DBG("%s flag (%d)\n", __FUNCTION__, flag);
+ if (!ctx->DrawBuffer || !ctx->DrawBuffer->Visual.depthBits)
+ flag = false;
+
dw = i915->state.Ctx[I915_CTXREG_LIS6];
if (flag && ctx->Depth.Test)
dw |= S6_DEPTH_WRITE_ENABLE;
@@ -797,6 +800,10 @@ i915Enable(struct gl_context * ctx, GLenum cap, GLboolean state)
case GL_DEPTH_TEST:
dw = i915->state.Ctx[I915_CTXREG_LIS6];
+
+ if (!ctx->DrawBuffer || !ctx->DrawBuffer->Visual.depthBits)
+ state = false;
+
if (state)
dw |= S6_DEPTH_TEST_ENABLE;
else