- 30 Apr, 2015 1 commit
-
-
Dan Stoza authored
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
-
- 29 Apr, 2015 3 commits
-
-
Dan Stoza authored
-
Dan Stoza authored
-
Nick Kralevich authored
-
- 28 Apr, 2015 4 commits
-
-
Nick Kralevich authored
Bug: 20669363 Change-Id: Ia4c8d8ca9d8b4b87954d7267e8b1c94cf4e570e1
-
Dan Stoza authored
Adds a NATIVE_WINDOW_BUFFER_AGE query, which returns the age of the contents of the most recently dequeued buffer as the number of frames that have elapsed since it was last queued. Change-Id: Ib6fd62945cb62d1e60133a65beee510363218a23
-
Dan Stoza authored
Implements the GET_SIDEBAND_STREAM case of IGraphicBufferConsumer::onTransact Change-Id: I46138b87ce2d70dde48b3561dcd378ce5fd8f383
-
Dan Stoza authored
-
- 27 Apr, 2015 4 commits
-
-
Dan Stoza authored
Changes Surface::detachNextBuffer to return an sp<GraphicBuffer> instead of an ANativeWindowBuffer* to ensure that reference counting works correctly. Bug: 20092217 Change-Id: I3979ea6121aaf14845f0554477b778770413581e
-
Andreas Gampe authored
-
Andreas Gampe authored
Add the debug.gencfi system property that forces generation of CFI data. Change-Id: Ida66f8c1567634d05cfdbba1a982be3684e94369
-
Michael Wright authored
-
- 24 Apr, 2015 2 commits
- 23 Apr, 2015 4 commits
-
-
Dan Stoza authored
-
Dan Stoza authored
-
Dan Stoza authored
Adds a new method IGBP::allowAllocation, which controls whether dequeueBuffer is permitted to allocate a new buffer. If allocation is disallowed, dequeueBuffer will block or return an error as it normally would (as controlled by *ControlledByApp). If there are free buffers, but they are not of the correct dimensions, format, or usage, they may be freed if a more suitable buffer is not found first. Bug: 19801715 Change-Id: I0d604958b78b2fd775c2547690301423f9a52165
-
Dan Stoza authored
BufferQueue used to choose free buffers by scanning through its array of slots and picking one based on timestamp. This changes that mechanism to use a pair of free lists: one with buffers attached and one without. This makes it easier to choose either type of free slot depending on the needs of the current operation. Fixes an issue with the first version of this change, found in bugs 20482952, 20443314, and 20464549. Bug: 13175420 Change-Id: I9b6e83cfe8f9b4329a976025cb8e291d51fb6d4a
-
- 22 Apr, 2015 5 commits
-
-
Dan Stoza authored
-
Dan Stoza authored
On normal Layers, we defer applying resize transactions until a buffer of the correct size arrives. This breaks with sideband streams, because buffers are not seen by SurfaceFlinger. This change applies transactions immediately for Layers which have a sideband stream attached to avoid that problem. Bug: 20428254 Change-Id: I379d8aaef460d467cdf8432764b4a504928fb65a (cherry picked from commit c300b8b506536e1bf94ffd8a3b75d46e776923e0)
-
Dan Stoza authored
-
Dan Stoza authored
-
- 21 Apr, 2015 1 commit
-
-
Dan Stoza authored
When the surface damage code went in, it incorrectly assumed that if an application was doing CPU rendering, it would be using lock and unlockAndPost instead of dequeue and queue, so it repurposed the dirty region too aggressively. This change keeps it from clobbering the dirty region if a CPU producer is attached. Bug: 20431815 Change-Id: Id4dfd71378311ea822f0289f6de2d20a7bd84014
-
- 20 Apr, 2015 3 commits
-
-
Dan Stoza authored
These tests hadn't been run in a while and had accumulated some rot. This fixes most of the compile warnings and some tests which fail incorrectly, but 2 failures remain on N6. Change-Id: I7fee78cd058a32f4d7df40ec9f899ff767f68517
-
Dan Stoza authored
BufferItem and GraphicBuffer were not parceling correctly, which had not been noticed because the libgui tests (specifically, one that tests placing a BufferQueue in a separate process from the IGBP/C) had not been run recently. This change fixes the errors found in those classes. Change-Id: Ie224361a534a79115a3481d83ff97f21d154d4f5
-
Dan Stoza authored
-
- 17 Apr, 2015 1 commit
-
-
Dan Stoza authored
BufferQueue used to choose free buffers by scanning through its array of slots and picking one based on timestamp. This changes that mechanism to use a pair of free lists: one with buffers attached and one without. This makes it easier to choose either type of free slot depending on the needs of the current operation. Bug: 13175420 Change-Id: Ic8398e7511bd11a60a1c82e3ad2ee271c9822be1
-
- 15 Apr, 2015 10 commits
-
-
Dan Stoza authored
-
Dan Stoza authored
This modifies EventThread such that its phase offsets for both Choreographer and SurfaceFlinger may be modified at runtime. It also plumbs this functionality up to the SurfaceFlinger debug interface so that it is possible to rapidly test different offsets without restarting the framework. Change-Id: I426873f8553f931250dfebc9a8a4a78e9f1f4309
-
Dan Stoza authored
-
Dan Stoza authored
-
Dan Stoza authored
Passes the surface damage from the incoming SurfaceFlingerConsumer BufferQueue down to the hardware composer HAL interface, if the HWC version number is 1.5 or greater. Bug: 11239309 Change-Id: Ic4305210593874a8d6deba3319055b2b8c57e926
-
Dan Stoza authored
This change adds support for passing surface damage all of the way down from the EGL interface through the consumer side of the BufferQueue. Depends on system/core change Ie645e6a52b37b5c1b3be19481e8348570d1aa62c Bug: 11239309 Change-Id: I4457ea826e9ade4ec187f973851d855b7b93a31b
-
Dan Stoza authored
-
Dan Stoza authored
-
Dan Stoza authored
Fence was flattening incorrectly, causing issues with any fields flattened after it, and Region was relying on being the last object flattened. This change addresses both. Change-Id: If49de061de6e2f11f4d846b4d8c18627dfb7e109
-
Dan Stoza authored
This adds EGL wrapper functions for the following EGL extensions: EGL_EXT_buffer_age EGL_KHR_partial_update EGL_KHR_swap_buffers_with_damage Change-Id: I407acda1e0310f7f01a5efe9c915721a941138a4
-
- 14 Apr, 2015 2 commits
-
-
Dan Stoza authored
-
baik.han authored
To avoid nan or infinity when orientation value is used for calculation without being initialized, check mOrientedRanges.haveOrientation value before using mOrientedRanges.orientation.min or .max value. Change-Id: I68ed9ab36819c5faa6422e9f061e1275aeed11e3 Signed-off-by:
Baik Han <baik.han@lge.com>
-