- 23 Apr, 2015 2 commits
-
-
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 1 commit
-
-
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 1 commit
-
-
Dan Stoza authored
-
- 10 Apr, 2015 3 commits
-
-
Jeff Sharkey authored
-
Jeff Sharkey authored
New "mvuserdata" command will move all private app data from one volume UUID to another. It leverages the existing "cp" toybox command to do the heavy lifting for all known users, preserving details like timestamps and permissions. It invokes restorecon() to correctly label the new location when the copy is finished. Changes installd to no longer drop capabilities, so we run as root again. This also allows us to exec "cp" with CAP_DAC_OVERRIDE and CAP_FOWNER still in effect. Bug: 19993667 Change-Id: I1f407a7c4a1af97ca5afc27b04eb16b4936cbdef
-
ywen authored
There is memory corruption in below code const Rect* prev = &dst[prevIndex]; dst.add(Rect(prev->right, top, right, bottom)); prev points to a memory of vector dst, when dst resize in add() call, the memory that prev points to will be copy to the new allocated vector memory and the old memory will become undefined Avoid pointer in this case, use a local copy instead Change-Id: I4d95ceedd00c8fb615ac153082ade1b1ce0d0fa8
-
- 09 Apr, 2015 8 commits
-
-
Jeff Sharkey authored
-
Jeff Sharkey authored
We're now parsing and passing through volume UUIDs sent across the command socket. The "!" argument value is treated as null, which means internal storage. Bug: 19993667 Change-Id: I17729a769ce687a2e94e85991a6338c77ded0b66
-
Jeff Sharkey authored
-
Jeff Sharkey authored
Teach free_cache() and restorecon_data() about building per-volume paths. Also clean up restorecon_data() by using std::string when building paths. Clearer names for path building utility methods, and tests to verify. Bug: 19993667 Change-Id: Iacfbcdaa5b901cc2490bc8eba366dfdeb44f1d93
-
Andreas Gampe authored
-
Andreas Gampe authored
Remove some unused parameters and variables. Change-Id: I507ae48fe1744b800ceb29192d463fd26c2ccda7
-
Jeff Sharkey authored
-
Richard Uhler authored
-
- 08 Apr, 2015 3 commits
-
-
Mark Salyzyn authored
-
Mark Salyzyn authored
Bug: 19525200 Change-Id: Ia2d2857cac953fb4ceafb66ddf775d89d7a777b1
-
Jeff Sharkey authored
Since app data paths can live on expanded storage devices, accept the target volume UUID when building paths. The null UUID indicates the default internal storage. To improve readability, start using std::string in several places, which throws when allocations fail. For now, perform last-second sanity checks on incoming path arguments, but we'll eventually want to check arguments as they come through installd.cpp, instead of crashing the entire daemon. Also remove "lib" symlink code from install() and make_user_data(), since we're no longer supporting /data/app-lib. The framework already uses linklib() to create the right symlink for the selected ISA-specific library dir. Bug: 19993667 Change-Id: Ib9343575ffb62bf3981e19375de8f3822fc31e28
-
- 07 Apr, 2015 5 commits
-
-
Richard Uhler authored
Change-Id: Ib9a6373f98474f1242367b5285086251a9d580e5
-
Dan Stoza authored
-
Dan Stoza authored
Exposes IGraphicBufferConsumer::detachBuffer as a ConsumerBase method. attachBuffer is not currently exposed, because all current clients will be recycling buffers through the allocator. Bug: 19628705 Change-Id: I3e519767fa43d5d880c1d5695e31b60f6ad588af
-
Jeff Sharkey authored
-
Jeff Sharkey authored
-