mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 15:20:10 +01:00
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
This commit is contained in:
parent
4c47fce92e
commit
fc4fba52cf
2 changed files with 8 additions and 2 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -798,8 +798,7 @@ i915_update_draw_buffer(struct intel_context *intel)
|
|||
/*
|
||||
* Update depth and stencil test state
|
||||
*/
|
||||
ctx->Driver.Enable(ctx, GL_DEPTH_TEST,
|
||||
(ctx->Depth.Test && fb->Visual.depthBits > 0));
|
||||
ctx->Driver.Enable(ctx, GL_DEPTH_TEST, ctx->Depth.Test);
|
||||
ctx->Driver.Enable(ctx, GL_STENCIL_TEST,
|
||||
(ctx->Stencil.Enabled && fb->Visual.stencilBits > 0));
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue