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>
This commit is contained in:
parent
c37e275e77
commit
eb4dc54788
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue