+ /* If the context uses a doublebuffered visual, but the buffer is
+ * single-buffered, guess that it's a pbuffer, which doesn't need
+ * flushing.
+ */
+ if (st->ctx->Visual.doubleBufferMode &&
+ !stfb->Base.Visual.doubleBufferMode)
+ return;
+
+ strb = st_renderbuffer(stfb->Base.Attachment[BUFFER_FRONT_LEFT].
+ Renderbuffer);
+
+ /* Do we have a front color buffer and has it been drawn to since last
+ * frontbuffer flush?
+ */
+ if (strb && strb->defined) {
+ stfb->iface->flush_front(&st->iface, stfb->iface,
+ ST_ATTACHMENT_FRONT_LEFT);
+ strb->defined = GL_FALSE;
+
+ /* Trigger an update of strb->defined on next draw */
+ st->dirty |= ST_NEW_FB_STATE;
+ }