diff options
author | Jørgen Lind <jorgen.lind@nokia.com> | 2012-01-26 15:02:09 +0100 |
---|---|---|
committer | Andy Nichols <andy.nichols@nokia.com> | 2012-01-26 16:04:05 +0100 |
commit | 7956891fb94d2bde80b5a2bda364f994bff76719 (patch) | |
tree | 20641d4e0ee32de633a4ea801e64a9945f3fe374 /src/compositor/wayland_wrapper | |
parent | 02ed852c0e03a975a86731d2928ad07117e913c4 (diff) |
Make it possible not to have queing of buffers on the serverside
Change-Id: Ic7d3221321e2d7ecc69e56b7ad7a23322e65995d
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
Diffstat (limited to 'src/compositor/wayland_wrapper')
-rw-r--r-- | src/compositor/wayland_wrapper/wlsurface.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/compositor/wayland_wrapper/wlsurface.cpp b/src/compositor/wayland_wrapper/wlsurface.cpp index 4208c1fd2..f0631177a 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(); |