diff options
author | Jerome Glisse <jglisse@redhat.com> | 2010-04-23 11:56:06 +0200 |
---|---|---|
committer | Jerome Glisse <jglisse@redhat.com> | 2010-04-23 11:56:06 +0200 |
commit | eb4dc547885994cc7961f7996c33ff484f664964 (patch) | |
tree | 4bfaf6e18e26c8f8352627983259213a93a58a31 /src/mesa/drivers/dri/r600/r700_state.c | |
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 <jglisse@redhat.com>
Diffstat (limited to 'src/mesa/drivers/dri/r600/r700_state.c')
-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 12eaebbc16..0d7cb8ecfe 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) |