From: Jerome Glisse Date: Fri, 23 Apr 2010 09:56:06 +0000 (+0200) Subject: r600: don't enable depth test if there is no depth buffer X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=eb4dc547885994cc7961f7996c33ff484f664964;p=mesa.git 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 --- 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)