Make it possible not to have queing of buffers on the serverside
authorJørgen Lind <jorgen.lind@nokia.com>
Thu, 26 Jan 2012 14:02:09 +0000 (15:02 +0100)
committerAndy Nichols <andy.nichols@nokia.com>
Thu, 26 Jan 2012 15:04:05 +0000 (16:04 +0100)
Change-Id: Ic7d3221321e2d7ecc69e56b7ad7a23322e65995d
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
src/compositor/wayland_wrapper/wlsurface.cpp

index 4208c1f..f063117 100644 (file)
@@ -301,10 +301,9 @@ public:
                 newBuffer->initialize(buffer);
                 break;
             }
-        }
-         if (!newBuffer) {
-             qDebug() << "####################### create failed ######################";
          }
+
+         Q_ASSERT(newBuffer);
          return newBuffer;
      }
 
@@ -536,18 +535,20 @@ GLuint Surface::textureId(QOpenGLContext *context) const
 void Surface::attach(struct wl_buffer *buffer)
 {
     Q_D(Surface);
+    static bool no_serverside_buffer_queue = qgetenv("QT_NO_SERVERSIDE_BUFFER_QUEUE").toInt();
+
     SurfaceBuffer *newBuffer = 0;
+    if (no_serverside_buffer_queue) {
+        if (d->surfaceBuffer && !d->surfaceBuffer->textureCreated()) {
+            qDebug() << "releasing undisplayed buffer";
+            d->surfaceBuffer->destructBufferState();
+            d->surfaceBuffer = 0;
+        }
+    }
     if (buffer) {
         newBuffer = d->createSurfaceBuffer(buffer);
-        Q_ASSERT(newBuffer);
-    }
-#if 0 //GAMING_TRIPLE_BUFFERING
-    if (d->surfaceBuffer && !d->surfaceBuffer->textureCreated()) {
-        //qDebug() << "releasing undisplayed buffer";
-        d->surfaceBuffer->destructBufferState();
-        d->surfaceBuffer = 0;
     }
-#endif
+
     SurfaceBuffer *last = d->bufferQueue.size()?d->bufferQueue.last():0;
     if (last && !last->damageRect().isValid()) {
         last->destructBufferState();