diff options
author | Jerome Glisse <[email protected]> | 2010-04-23 11:56:06 +0200 |
---|---|---|
committer | Jerome Glisse <[email protected]> | 2010-04-23 11:56:06 +0200 |
commit | eb4dc547885994cc7961f7996c33ff484f664964 (patch) | |
tree | 4bfaf6e18e26c8f8352627983259213a93a58a31 | |
parent | c37e275e778e8c944e3dfad159b1eb94c601af60 (diff) |
r600: don't enable depth test if there is no depth buffer
If there is no depth buffer bound to current context don't
enable depth test. GL states that if depth test is enabled
without depth buffer it's as if depth buffer always pass.
Signed-off-by: Jerome Glisse <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/r600/r700_state.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/r600/r700_state.c b/src/mesa/drivers/dri/r600/r700_state.c index 12eaebbc16b..0d7cb8ecfe5 100644 --- a/src/mesa/drivers/dri/r600/r700_state.c +++ b/src/mesa/drivers/dri/r600/r700_state.c @@ -252,12 +252,15 @@ void r700UpdateShaderStates(GLcontext * ctx) static void r700SetDepthState(GLcontext * ctx) { + struct radeon_renderbuffer *rrb; context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); R600_STATECHANGE(context, db); - if (ctx->Depth.Test) + rrb = radeon_get_depthbuffer(&context->radeon); + + if (ctx->Depth.Test && rrb && rrb->bo) { SETbit(r700->DB_DEPTH_CONTROL.u32All, Z_ENABLE_bit); if (ctx->Depth.Mask) |