mesa/st: Fix piglit read-front with new drawable invalidation v2
authorThomas Hellstrom <thellstrom@vmware.com>
Fri, 8 Jul 2011 06:26:29 +0000 (08:26 +0200)
committerThomas Hellstrom <thellstrom@vmware.com>
Fri, 8 Jul 2011 06:37:42 +0000 (08:37 +0200)
When the state tracker adds a front buffer, nothing triggers a validate
drawable call, since the state tracker manager is never notified.

Force a validate drawable call by invalidating the framebuffer's stamp, so
that the window system's renderbuffer (if any) is picked up.

This fixes bug 38988
https://bugs.freedesktop.org/show_bug.cgi?id=38988

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
src/mesa/state_tracker/st_manager.c

index a8c4b5c3f496826b1629ffde9b47380adaa90564..7bd82aae20601c5ddaf6ba7bede5ea6e0d85bf5e 100644 (file)
@@ -918,6 +918,15 @@ st_manager_add_color_renderbuffer(struct st_context *st,
       return FALSE;
 
    st_framebuffer_update_attachments(stfb);
+
+   /*
+    * Force a call to the state tracker manager to validate the
+    * new renderbuffer. It might be that there is a window system
+    * renderbuffer available.
+    */
+   if(stfb->iface)
+      stfb->iface_stamp = p_atomic_read(&stfb->iface->stamp) - 1;
+
    st_invalidate_state(st->ctx, _NEW_BUFFERS);
 
    return TRUE;