diff options
| author | Dan Stoza <stoza@google.com> | 2015-04-28 14:42:06 -0700 |
|---|---|---|
| committer | Dan Stoza <stoza@google.com> | 2015-05-01 12:23:44 -0700 |
| commit | ecc504043fddb7a75042ce402c67aedfac04d5e2 (patch) | |
| tree | ef6b8080362a8655a3291e5757dd72d202701898 /opengl/tests/gl_basic/gl_basic.cpp | |
| parent | 7b2fc930077b1e6ca5946cae6834902318209474 (diff) | |
SurfaceFlinger: Fix PTS on stale buffers
SurfaceFlinger's (Layer's) shadow copy of the BufferQueue queue was
getting out of sync for a few reasons. This change fixes these by
doing the following:
- Adds a check to re-synchronize the shadow copy every time we
successfully acquire a buffer by first dropping stale buffers before
removing the current buffer.
- Avoids trying to perform updates for buffers which have been rejected
(for incorrect dimensions) by SurfaceFlinger.
- Adds IGraphicBufferConsumer::setShadowQueueSize, which allows the
consumer to notify the BufferQueue that it is maintaining a shadow
copy of the queue and prevents it from dropping so many buffers
during acquireBuffer that it ends up returning a buffer for which the
consumer has not yet received an onFrameAvailable call.
Bug: 20096136
Change-Id: I78d0738428005fc19b3be85cc8f1db498043612f
(cherry picked from commit 2e36f2283f48ab764b496490c73a132acf21df3a)
Diffstat (limited to 'opengl/tests/gl_basic/gl_basic.cpp')
0 files changed, 0 insertions, 0 deletions
