Revert "st/dri: no need to request fake front buffer, only handle it being returned"
authorThomas Hellstrom <thellstrom@vmware.com>
Mon, 11 Jan 2010 20:32:13 +0000 (21:32 +0100)
committerThomas Hellstrom <thellstrom@vmware.com>
Mon, 11 Jan 2010 20:36:51 +0000 (21:36 +0100)
This reverts commit 1336989ec60fff7bd590fefd28945a0e5dc536e3.

The commit breaks frontbuffer rendering and the possibility to do
on-demand frontbuffer requests on all Xservers prior to 1.7.

The commit should be conditioned on a dri2 version check.
I've submitted a patch to Xserver to bump dri2 minor, and it's acked by Ian.

To be able to check the version from within the state tracker, we will
probably need another dri2 extension function that returns the server
version. The protocol has support for it.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
src/gallium/state_trackers/dri/dri_drawable.c

index 5625ff53cfd77096bdf7e293f1cbe7d7fe03d04c..c4dfb0c41f81dbe75b413cdb0e24803efb63da9b 100644 (file)
@@ -180,6 +180,7 @@ dri_get_buffers(__DRIdrawablePrivate * dPriv)
 
       switch (buffers[i].attachment) {
       case __DRI_BUFFER_FRONT_LEFT:
+        continue;
       case __DRI_BUFFER_FAKE_FRONT_LEFT:
         index = ST_SURFACE_FRONT_LEFT;
         format = drawable->color_format;
@@ -367,6 +368,8 @@ dri_create_buffer(__DRIscreenPrivate * sPriv,
 
    if (visual->doubleBufferMode)
       drawable->attachments[i++] = __DRI_BUFFER_BACK_LEFT;
+   else
+      drawable->attachments[i++] = __DRI_BUFFER_FAKE_FRONT_LEFT;
    if (visual->depthBits && visual->stencilBits)
       drawable->attachments[i++] = __DRI_BUFFER_DEPTH_STENCIL;
    else if (visual->depthBits)