radeon/dri2: if the depth buffer is 16-bit force cpp == 2
authorDave Airlie <airlied@redhat.com>
Tue, 31 Mar 2009 05:50:19 +0000 (15:50 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 31 Mar 2009 05:50:19 +0000 (15:50 +1000)
This is because the DDX always allocates using the drawable sizes.
which gives me twice the depth buffer I asked for, dumb.

src/mesa/drivers/dri/radeon/radeon_common_context.c

index 9964de7c7ccdac9154670ad9da5726d85a842537..5766c9ec7bcfed33d71472804466ba3d1c438cb9 100644 (file)
@@ -508,8 +508,11 @@ radeon_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable)
                        }
                }
 
-               if (buffers[i].attachment == __DRI_BUFFER_DEPTH)
+               if (buffers[i].attachment == __DRI_BUFFER_DEPTH) {
+                       if (draw->base.Visual.depthBits == 16)
+                               rb->cpp = 2;
                        depth_bo = bo;
+               }
 
                radeon_renderbuffer_set_bo(rb, bo);
                radeon_bo_unref(bo);