From 7956891fb94d2bde80b5a2bda364f994bff76719 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=B8rgen=20Lind?= Date: Thu, 26 Jan 2012 15:02:09 +0100 Subject: [PATCH] Make it possible not to have queing of buffers on the serverside Change-Id: Ic7d3221321e2d7ecc69e56b7ad7a23322e65995d Sanity-Review: Qt Sanity Bot Reviewed-by: Andy Nichols --- src/compositor/wayland_wrapper/wlsurface.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/compositor/wayland_wrapper/wlsurface.cpp b/src/compositor/wayland_wrapper/wlsurface.cpp index 4208c1f..f063117 100644 --- a/src/compositor/wayland_wrapper/wlsurface.cpp +++ b/src/compositor/wayland_wrapper/wlsurface.cpp @@ -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(); -- 2.7.4