OSDN Git Service

android-x86/frameworks-native.git
9 years agoMerge "fix BufferItem flatten/unflatten alignment"
Dan Stoza [Thu, 28 May 2015 20:51:55 +0000 (20:51 +0000)]
Merge "fix BufferItem flatten/unflatten alignment"

9 years agoMerge "Refactor ConsumerBase and it's derived classes."
Dan Stoza [Thu, 28 May 2015 20:48:47 +0000 (20:48 +0000)]
Merge "Refactor ConsumerBase and it's derived classes."

9 years agoMerge "Fix EGL shim extension injection for GL ES 3 drivers."
Jesse Hall [Thu, 28 May 2015 20:46:44 +0000 (20:46 +0000)]
Merge "Fix EGL shim extension injection for GL ES 3 drivers."

9 years agoMerge "Add ConsumerBase::isAbandoned"
Dan Stoza [Thu, 28 May 2015 20:39:59 +0000 (20:39 +0000)]
Merge "Add ConsumerBase::isAbandoned"

9 years agofix BufferItem flatten/unflatten alignment
Chong Zhang [Fri, 22 May 2015 17:54:25 +0000 (10:54 -0700)]
fix BufferItem flatten/unflatten alignment

bug: 21370100
Change-Id: Ia3991dc591c176bdbd1d78d1804aa22777525b62
(cherry picked from commit 47f674dfeca31b29810ecb90f1277918b67c4cf8)

9 years agoRefactor ConsumerBase and it's derived classes.
Michael Lentine [Mon, 18 May 2015 20:41:23 +0000 (13:41 -0700)]
Refactor ConsumerBase and it's derived classes.

Move setDefaultBufferSize, setDefaultBufferFormat, and
setDefaultBufferDataSpace into ConsumerBase and remove them from
CpuConsumer and BufferItemConsumer.

Bug: 19977701

Change-Id: Ic68992464c5da6da7a41c4063a53029a69efcd1b
(cherry picked from commit 847f11e215e86b107ab50c1359fc7bc3cd7a3a11)

9 years agoAdd ConsumerBase::isAbandoned
John Reck [Thu, 14 May 2015 22:55:11 +0000 (15:55 -0700)]
Add ConsumerBase::isAbandoned

Bug: 20105644
Change-Id: I21526b5397ea51a15500c44a99daa9d75fc4ea67
(cherry picked from commit e478305181bb8dc8706361bc702256fe73f958de)

9 years agoMerge "Rename --include-cfi to --generate-debug-info."
David Srbecky [Thu, 28 May 2015 18:37:35 +0000 (18:37 +0000)]
Merge "Rename --include-cfi to --generate-debug-info."

9 years agoRename --include-cfi to --generate-debug-info.
David Srbecky [Thu, 28 May 2015 15:55:50 +0000 (16:55 +0100)]
Rename --include-cfi to --generate-debug-info.

This follows a change in dex2oat.

Change-Id: I6b2df1668fdd09d82cfe86e6e51360b954b6c8a9

9 years agoMerge "framework/native/docs: remove doc footer for jd output"
Johan Euphrosine [Wed, 27 May 2015 21:30:37 +0000 (21:30 +0000)]
Merge "framework/native/docs: remove doc footer for jd output"

9 years agoframework/native/docs: remove doc footer for jd output
Johan Euphrosine [Wed, 27 May 2015 17:13:35 +0000 (10:13 -0700)]
framework/native/docs: remove doc footer for jd output

Change-Id: Ib65a436f4846eb5c02e42c6f1cbda5eab58c68ab

9 years agoMerge "frameworks/native/docs: add doxygen configuration"
Johan Euphrosine [Fri, 22 May 2015 22:28:24 +0000 (22:28 +0000)]
Merge "frameworks/native/docs: add doxygen configuration"

9 years agoFix EGL shim extension injection for GL ES 3 drivers.
Alistair Strachan [Fri, 22 May 2015 21:10:09 +0000 (14:10 -0700)]
Fix EGL shim extension injection for GL ES 3 drivers.

The Android EGL shim injects GL_EXT_debug_marker into the ES driver
EXTENSIONS string for the OpenGL ES 1.x and 2.0/3.0/3.1 drivers if
the extension is not already provided. This feature is used by
GLES_trace.

In Open GL ES 3.0 it became possible to query an indexed version of
the EXTENSIONS string via GetStringi(). NUM_EXTENSIONS Gets were
also added to the specification (taken from Open GL).

If the shim does not have to inject the extension, then there is no
problem, as glGetString() and glGetStringi() / NUM_EXTENSIONS will
be consistent. However, if the Android EGL shim injects the
extension, NUM_EXTENSIONS and GetStringi() will report one less
extension than is really available.

Consistency between these methods is tested by the dEQP framework
with the dEQP-GLES3.functional.state_query.string.extensions test.
If the driver does not provide GL_EXT_debug_marker, this test
fails.

This change wraps all of the affected entry points so that the
wrapped driver extensions are never visible directly to dEQP,
eliminating the inconsistency.

9 years agoframeworks/native/docs: add doxygen configuration
Johan Euphrosine [Thu, 21 May 2015 08:15:34 +0000 (01:15 -0700)]
frameworks/native/docs: add doxygen configuration

Change-Id: I7803d9beceac46488869e4874f6f5f7a7925a796

9 years agoMerge "Don't use TEMP_FAILURE_RETRY on close in frameworks/native."
Elliott Hughes [Sat, 16 May 2015 00:26:09 +0000 (00:26 +0000)]
Merge "Don't use TEMP_FAILURE_RETRY on close in frameworks/native."

9 years agoDon't use TEMP_FAILURE_RETRY on close in frameworks/native.
Elliott Hughes [Sat, 16 May 2015 00:05:40 +0000 (17:05 -0700)]
Don't use TEMP_FAILURE_RETRY on close in frameworks/native.

Bug: http://b/20501816
Change-Id: Id13a62f02243c6c4831e2f47944dc34fa822f5b6

9 years agoMerge "SurfaceFlinger: Handle EGL errors more cleanly"
Dan Stoza [Thu, 14 May 2015 17:56:27 +0000 (17:56 +0000)]
Merge "SurfaceFlinger: Handle EGL errors more cleanly"

9 years agoSurfaceFlinger: Handle EGL errors more cleanly
Dan Stoza [Thu, 14 May 2015 16:27:25 +0000 (09:27 -0700)]
SurfaceFlinger: Handle EGL errors more cleanly

Adds some more safety checking for cases where we get an error while
trying to create the EGLImage. The checking puts the Layer into a
failed state after detecting an error, since the shadow queue may no
longer be synchronized.

Bug: 20957332
Change-Id: I68b4c40eab3e58731b875ed5752f2c7d17f14bcb
(cherry picked from commit 65476f3332641066a99e22338bf5cf49ce4af642)

9 years agoMerge "Replace JNI primitive array critical calls with non-critical ones."
Hiroshi Yamauchi [Wed, 13 May 2015 22:47:42 +0000 (22:47 +0000)]
Merge "Replace JNI primitive array critical calls with non-critical ones."

9 years agoReplace JNI primitive array critical calls with non-critical ones.
Hiroshi Yamauchi [Wed, 13 May 2015 20:11:30 +0000 (13:11 -0700)]
Replace JNI primitive array critical calls with non-critical ones.

The glgen part.

(cherry pick commit 4e7de461c18278a31be83e7c9074a02fbb6e9475)

Bug: 19235243
Change-Id: I0d1e78acf39feb37a67e857216a6d52f4cede180

9 years agoMerge "Fix PTS handling for buffer replacement"
Dan Stoza [Wed, 13 May 2015 17:53:22 +0000 (17:53 +0000)]
Merge "Fix PTS handling for buffer replacement"

9 years agoMerge "binder: add uint64 support to Parcel."
Dan Stoza [Wed, 13 May 2015 17:52:46 +0000 (17:52 +0000)]
Merge "binder: add uint64 support to Parcel."

9 years agoFix PTS handling for buffer replacement
Dan Stoza [Tue, 12 May 2015 19:56:16 +0000 (12:56 -0700)]
Fix PTS handling for buffer replacement

This changes the way that SurfaceFlinger's shadow buffer management
works such that instead of tracking the size of the shadow queue in the
BufferQueue, SF tracks the last frame number it has seen, and passes
that into the acquireBuffer call. BufferQueueConsumer then ensures that
it never returns a buffer newer than that frame number, even if that
means that it must return PRESENT_LATER for an otherwise valid buffer.

Change-Id: I3fcb45f683ed660c3f18a8b85ae1f8a962ba6f0e
(cherry picked from commit a4650a50a0b35e9e4342d6600b6eb24fd94bb8e5)

9 years agobinder: add uint64 support to Parcel.
Ronghua Wu [Mon, 16 Mar 2015 18:11:07 +0000 (11:11 -0700)]
binder: add uint64 support to Parcel.

Bug: 19620911
Change-Id: Ifce5319e4e35afd344dead67ab7ba1cd399476a3
(cherry picked from commit 2d13afdfa1f43973bf3cb917c7d6496a38baa446)

9 years agoMerge "libgui: Always allow allocation on connect"
Dan Stoza [Tue, 12 May 2015 22:33:38 +0000 (22:33 +0000)]
Merge "libgui: Always allow allocation on connect"

9 years agoMerge "frameworks/native: document native types and enums"
Johan Euphrosine [Tue, 12 May 2015 22:05:21 +0000 (22:05 +0000)]
Merge "frameworks/native: document native types and enums"

9 years agolibgui: Always allow allocation on connect
Dan Stoza [Tue, 12 May 2015 21:55:15 +0000 (14:55 -0700)]
libgui: Always allow allocation on connect

This change places BufferQueue into a predictable state where
allocation is allowed whenever a producer connects. This allows clients
to disconnect and reconnect without having to worry about being locked
out of allocation.

Bug: 20554276
Change-Id: Ic0f920a3d4204f2cafdfa69e46f3bb4204571d7e
(cherry picked from commit 2b83cc920ac98498bee161e2b0e7befdfc82ca2b)

9 years agoframeworks/native: document native types and enums
Johan Euphrosine [Sat, 28 Mar 2015 00:15:43 +0000 (17:15 -0700)]
frameworks/native: document native types and enums

Change-Id: Id94b610f27b87426abb30e13484cbd16990aa995

9 years agoMerge "libgui: Hook up onFrameReplaced"
Dan Stoza [Tue, 12 May 2015 17:18:11 +0000 (17:18 +0000)]
Merge "libgui: Hook up onFrameReplaced"

9 years agolibgui: Hook up onFrameReplaced
Dan Stoza [Mon, 11 May 2015 22:33:01 +0000 (15:33 -0700)]
libgui: Hook up onFrameReplaced

This completes the plumbing from ConsumerListener::onFrameReplaced into
SurfaceFlinger (and other consumers that may care).

Change-Id: I376e78ace95d6748e8662e6b4d47c0dfa697a300
(cherry picked from commit dc13c5b85b099050c73297a19f1ef89308f7620b)

9 years agoMerge "libEGL: whitelist the EGL_KHR_create_context_no_error extension"
Jesse Hall [Mon, 11 May 2015 21:31:44 +0000 (21:31 +0000)]
Merge "libEGL: whitelist the EGL_KHR_create_context_no_error extension"

9 years agolibEGL: whitelist the EGL_KHR_create_context_no_error extension
Jesse Hall [Fri, 24 Apr 2015 08:40:42 +0000 (01:40 -0700)]
libEGL: whitelist the EGL_KHR_create_context_no_error extension

Allow EGL implementations to expose the
EGL_KHR_create_context_no_error extension if they wish.

https://www.khronos.org/registry/egl/extensions/KHR/EGL_KHR_create_context_no_error.txt

Change-Id: I3290ccc2a69a1fa0b00ec3f1aa4f876906c64bfb

9 years agoMerge "Added Voltage and Current regulator ftrace events to atrace"
Chris Craik [Thu, 7 May 2015 16:20:52 +0000 (16:20 +0000)]
Merge "Added Voltage and Current regulator ftrace events to atrace"

9 years agoMerge "SF: Apply pending transactions to new sidebands"
Dan Stoza [Wed, 6 May 2015 16:50:38 +0000 (16:50 +0000)]
Merge "SF: Apply pending transactions to new sidebands"

9 years agoSF: Apply pending transactions to new sidebands
Dan Stoza [Tue, 5 May 2015 21:00:52 +0000 (14:00 -0700)]
SF: Apply pending transactions to new sidebands

When a Layer's sideband stream is set, apply any pending transactions.
Otherwise they would never be applied since sideband streams don't
trigger updates by pushing new buffers.

Bug: 20125898
Change-Id: I0c7a91cdf84e6205801f4ab64eee0b09e4c0b3e0
(cherry picked from commit 3b04e1383eca6cb1d43ebe23a421c427007690c7)

9 years agoMerge "libgui: Clear frame number while freeing slot"
Dan Stoza [Mon, 4 May 2015 16:57:53 +0000 (16:57 +0000)]
Merge "libgui: Clear frame number while freeing slot"

9 years agolibgui: Clear frame number while freeing slot
Dan Stoza [Fri, 1 May 2015 23:42:55 +0000 (16:42 -0700)]
libgui: Clear frame number while freeing slot

Clears the frame number of a slot when it is freed, since it is used
to determine if a released buffer is stale.

Bug: 20445852
Change-Id: I02415e7b25a1eafe7414d6eb1cedf62ac5543cd9
(cherry picked from commit 52937cd9a543fe66696c38ae50ec141aa70ec1e4)

9 years agoMerge "dumpstate: report per-partition MMC performance"
Mark Salyzyn [Fri, 1 May 2015 21:48:51 +0000 (21:48 +0000)]
Merge "dumpstate: report per-partition MMC performance"

9 years agoMerge "SurfaceFlinger: Fix PTS on stale buffers"
Dan Stoza [Fri, 1 May 2015 20:28:47 +0000 (20:28 +0000)]
Merge "SurfaceFlinger: Fix PTS on stale buffers"

9 years agoSurfaceFlinger: Fix PTS on stale buffers
Dan Stoza [Tue, 28 Apr 2015 21:42:06 +0000 (14:42 -0700)]
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

9 years agoMerge "SurfaceFlinger: Limit to 4k Layers"
Dan Stoza [Thu, 30 Apr 2015 22:09:37 +0000 (22:09 +0000)]
Merge "SurfaceFlinger: Limit to 4k Layers"

9 years agoMerge "SurfaceFlinger: Fix integer overflow in Mesh ctor"
Dan Stoza [Thu, 30 Apr 2015 21:57:15 +0000 (21:57 +0000)]
Merge "SurfaceFlinger: Fix integer overflow in Mesh ctor"

9 years agoMerge "Close Fence FDs in error cases of Surface and GraphicBufferMapper"
Dan Stoza [Thu, 30 Apr 2015 21:49:39 +0000 (21:49 +0000)]
Merge "Close Fence FDs in error cases of Surface and GraphicBufferMapper"

9 years agoSurfaceFlinger: Limit to 4k Layers
Dan Stoza [Thu, 30 Apr 2015 20:29:25 +0000 (13:29 -0700)]
SurfaceFlinger: Limit to 4k Layers

Sets a limit of 4k Layers which SurfaceFlinger will allow to be in
existence at any given time. An attempt to create Layers in excess of
this limit will fail with NO_MEMORY.

Bug: 20674586
Change-Id: I2dfaf59643d826f982b2fa44e8a9ed643176d972

9 years agodumpstate: report per-partition MMC performance
Mark Salyzyn [Thu, 30 Apr 2015 16:49:41 +0000 (09:49 -0700)]
dumpstate: report per-partition MMC performance

Change-Id: If5cabe186d8377056effa1c0672a90e277cd7221

9 years agoSurfaceFlinger: Fix integer overflow in Mesh ctor
Dan Stoza [Wed, 29 Apr 2015 20:30:31 +0000 (13:30 -0700)]
SurfaceFlinger: Fix integer overflow in Mesh ctor

Performs range checking on the inputs to Mesh::Mesh() before allocating
the storage array.

Bug: 20674682
Change-Id: I4fc918a8c312d967dd6d9f91a098b2e0a7081027

9 years agoMerge "Remove gamma correction from color correction shader"
Dan Stoza [Thu, 30 Apr 2015 19:36:24 +0000 (19:36 +0000)]
Merge "Remove gamma correction from color correction shader"

9 years agoMerge "Avoid closing invalid FD in Surface and GraphicBufferMapper"
Dan Stoza [Thu, 30 Apr 2015 16:34:11 +0000 (16:34 +0000)]
Merge "Avoid closing invalid FD in Surface and GraphicBufferMapper"

9 years agoAvoid closing invalid FD in Surface and GraphicBufferMapper
Taiju Tsuiki [Thu, 30 Apr 2015 13:13:14 +0000 (22:13 +0900)]
Avoid closing invalid FD in Surface and GraphicBufferMapper

GraphicBufferMapper::lockAsync{,YCbCr} close the fence FD even when the FD
is invalid.

Change-Id: Ia2b4dae3b2c06426e34f623f19ba92435f486ab7

9 years agoClose Fence FDs in error cases of Surface and GraphicBufferMapper
Taiju Tsuiki [Thu, 30 Apr 2015 13:15:33 +0000 (22:15 +0900)]
Close Fence FDs in error cases of Surface and GraphicBufferMapper

Surface::{cancel,queue}Buffer and GraphicBufferMapper::lockAsyncYCbCr take the
ownership of |fenceFd|s. Though they don't close it on error cases.

Change-Id: I49a7ce8837d5c510c4ac4ad4649f310d18610e80

9 years agoRemove gamma correction from color correction shader
Alan Viverette [Wed, 29 Apr 2015 00:15:57 +0000 (17:15 -0700)]
Remove gamma correction from color correction shader

Gamma correction was incorrectly skewing both color inversion and
Daltonization, which resulted in washed-out colors.

Bug: 20346301
Change-Id: I34d879f902c3be115b2d23f09c3ed3902799759e
(cherry picked from commit 3acd9f1d8fdffc0ed0837ebbabcac0c4014015b3)

9 years agoMerge "BufferQueue: Add NATIVE_WINDOW_BUFFER_AGE query"
Dan Stoza [Wed, 29 Apr 2015 17:21:49 +0000 (17:21 +0000)]
Merge "BufferQueue: Add NATIVE_WINDOW_BUFFER_AGE query"

9 years agoMerge "libgui: Implement onTransact for sideband streams"
Dan Stoza [Wed, 29 Apr 2015 17:17:52 +0000 (17:17 +0000)]
Merge "libgui: Implement onTransact for sideband streams"

9 years agoMerge "Parcel.cpp: use calloc instead of malloc"
Nick Kralevich [Wed, 29 Apr 2015 04:16:23 +0000 (04:16 +0000)]
Merge "Parcel.cpp: use calloc instead of malloc"

9 years agoParcel.cpp: use calloc instead of malloc
Nick Kralevich [Tue, 28 Apr 2015 23:21:30 +0000 (16:21 -0700)]
Parcel.cpp: use calloc instead of malloc

Bug: 20669363
Change-Id: Ia4c8d8ca9d8b4b87954d7267e8b1c94cf4e570e1

9 years agoBufferQueue: Add NATIVE_WINDOW_BUFFER_AGE query
Dan Stoza [Thu, 26 Feb 2015 00:49:08 +0000 (16:49 -0800)]
BufferQueue: Add NATIVE_WINDOW_BUFFER_AGE query

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

9 years agolibgui: Implement onTransact for sideband streams
Dan Stoza [Tue, 28 Apr 2015 20:18:07 +0000 (13:18 -0700)]
libgui: Implement onTransact for sideband streams

Implements the GET_SIDEBAND_STREAM case of
IGraphicBufferConsumer::onTransact

Change-Id: I46138b87ce2d70dde48b3561dcd378ce5fd8f383

9 years agoMerge "libgui: Change detachNextBuffer to return sp<GB>"
Dan Stoza [Tue, 28 Apr 2015 17:36:54 +0000 (17:36 +0000)]
Merge "libgui: Change detachNextBuffer to return sp<GB>"

9 years agolibgui: Change detachNextBuffer to return sp<GB>
Dan Stoza [Mon, 27 Apr 2015 18:06:01 +0000 (11:06 -0700)]
libgui: Change detachNextBuffer to return sp<GB>

Changes Surface::detachNextBuffer to return an sp<GraphicBuffer>
instead of an ANativeWindowBuffer* to ensure that reference counting
works correctly.

Bug: 20092217
Change-Id: I3979ea6121aaf14845f0554477b778770413581e

9 years agoMerge "Installd: Add debug.gencfi to run_dex2oat"
Andreas Gampe [Mon, 27 Apr 2015 15:14:42 +0000 (15:14 +0000)]
Merge "Installd: Add debug.gencfi to run_dex2oat"

9 years agoInstalld: Add debug.gencfi to run_dex2oat
Andreas Gampe [Fri, 24 Apr 2015 21:30:04 +0000 (14:30 -0700)]
Installd: Add debug.gencfi to run_dex2oat

Add the debug.gencfi system property that forces generation of
CFI data.

Change-Id: Ida66f8c1567634d05cfdbba1a982be3684e94369

9 years agoMerge "Check orientation range has been initialized first"
Michael Wright [Mon, 27 Apr 2015 14:13:21 +0000 (14:13 +0000)]
Merge "Check orientation range has been initialized first"

9 years agoMerge "libgui: Allow an IGBProducer to disable allocation"
Dan Stoza [Fri, 24 Apr 2015 15:50:09 +0000 (15:50 +0000)]
Merge "libgui: Allow an IGBProducer to disable allocation"

9 years agoMerge "libgui: Change BufferQueue to use free lists"
Dan Stoza [Fri, 24 Apr 2015 15:48:37 +0000 (15:48 +0000)]
Merge "libgui: Change BufferQueue to use free lists"

9 years agoMerge "libgui: Fix some bitrot/warnings in tests"
Dan Stoza [Thu, 23 Apr 2015 22:53:36 +0000 (22:53 +0000)]
Merge "libgui: Fix some bitrot/warnings in tests"

9 years agoMerge "libui/libgui: Fix errors in parceling"
Dan Stoza [Thu, 23 Apr 2015 22:51:00 +0000 (22:51 +0000)]
Merge "libui/libgui: Fix errors in parceling"

9 years agolibgui: Allow an IGBProducer to disable allocation
Dan Stoza [Fri, 17 Apr 2015 00:28:43 +0000 (17:28 -0700)]
libgui: Allow an IGBProducer to disable allocation

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

9 years agolibgui: Change BufferQueue to use free lists
Dan Stoza [Thu, 23 Apr 2015 20:20:51 +0000 (13:20 -0700)]
libgui: Change BufferQueue to use free lists

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
2048295220443314, and 20464549.

Bug: 13175420
Change-Id: I9b6e83cfe8f9b4329a976025cb8e291d51fb6d4a

9 years agoMerge "SF: Always perform sideband transactions"
Dan Stoza [Wed, 22 Apr 2015 23:57:28 +0000 (23:57 +0000)]
Merge "SF: Always perform sideband transactions"

9 years agoSF: Always perform sideband transactions
Dan Stoza [Wed, 22 Apr 2015 21:59:08 +0000 (14:59 -0700)]
SF: Always perform sideband transactions

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)

9 years agoMerge "Revert "libgui: Change BufferQueue to use free lists""
Dan Stoza [Wed, 22 Apr 2015 18:59:01 +0000 (18:59 +0000)]
Merge "Revert "libgui: Change BufferQueue to use free lists""

9 years agoRevert "libgui: Change BufferQueue to use free lists"
Dan Stoza [Wed, 22 Apr 2015 18:57:39 +0000 (18:57 +0000)]
Revert "libgui: Change BufferQueue to use free lists"

This reverts commit 8dddc990103b71137be2a6365a26b1ac36598e68.

Change-Id: I0b0fed9f1394c6f6ae812f6c562ead4473a8226e

9 years agoMerge "libgui: Fix CPU rendering on Surface"
Dan Stoza [Wed, 22 Apr 2015 00:07:51 +0000 (00:07 +0000)]
Merge "libgui: Fix CPU rendering on Surface"

9 years agolibgui: Fix CPU rendering on Surface
Dan Stoza [Tue, 21 Apr 2015 23:42:49 +0000 (16:42 -0700)]
libgui: Fix CPU rendering on Surface

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

9 years agolibgui: Fix some bitrot/warnings in tests
Dan Stoza [Mon, 20 Apr 2015 19:09:38 +0000 (12:09 -0700)]
libgui: Fix some bitrot/warnings in tests

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

9 years agolibui/libgui: Fix errors in parceling
Dan Stoza [Mon, 20 Apr 2015 19:07:13 +0000 (12:07 -0700)]
libui/libgui: Fix errors in parceling

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

9 years agoMerge "libgui: Change BufferQueue to use free lists"
Dan Stoza [Mon, 20 Apr 2015 20:14:13 +0000 (20:14 +0000)]
Merge "libgui: Change BufferQueue to use free lists"

9 years agolibgui: Change BufferQueue to use free lists
Dan Stoza [Thu, 16 Apr 2015 22:39:18 +0000 (15:39 -0700)]
libgui: Change BufferQueue to use free lists

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

9 years agoMerge "SF: Permit changing DispSync offsets at runtime"
Dan Stoza [Wed, 15 Apr 2015 21:37:19 +0000 (21:37 +0000)]
Merge "SF: Permit changing DispSync offsets at runtime"

9 years agoSF: Permit changing DispSync offsets at runtime
Dan Stoza [Tue, 14 Apr 2015 18:34:01 +0000 (11:34 -0700)]
SF: Permit changing DispSync offsets at runtime

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

9 years agoMerge "SurfaceFlinger: Pass surface damage to HWC"
Dan Stoza [Wed, 15 Apr 2015 20:34:50 +0000 (20:34 +0000)]
Merge "SurfaceFlinger: Pass surface damage to HWC"

9 years agoMerge "libgui: Pass surface damage through BufferQueue"
Dan Stoza [Wed, 15 Apr 2015 20:26:55 +0000 (20:26 +0000)]
Merge "libgui: Pass surface damage through BufferQueue"

9 years agoSurfaceFlinger: Pass surface damage to HWC
Dan Stoza [Mon, 23 Mar 2015 22:50:23 +0000 (15:50 -0700)]
SurfaceFlinger: Pass surface damage to HWC

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

9 years agolibgui: Pass surface damage through BufferQueue
Dan Stoza [Tue, 17 Mar 2015 23:23:42 +0000 (16:23 -0700)]
libgui: Pass surface damage through BufferQueue

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

9 years agoMerge "libui: Clean up Fence and Region flattening"
Dan Stoza [Wed, 15 Apr 2015 20:13:53 +0000 (20:13 +0000)]
Merge "libui: Clean up Fence and Region flattening"

9 years agoMerge "libEGL: Add wrappers for partial update functions"
Dan Stoza [Wed, 15 Apr 2015 20:08:35 +0000 (20:08 +0000)]
Merge "libEGL: Add wrappers for partial update functions"

9 years agolibui: Clean up Fence and Region flattening
Dan Stoza [Mon, 23 Mar 2015 20:46:14 +0000 (13:46 -0700)]
libui: Clean up Fence and Region flattening

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

9 years agolibEGL: Add wrappers for partial update functions
Dan Stoza [Thu, 19 Feb 2015 23:27:36 +0000 (15:27 -0800)]
libEGL: Add wrappers for partial update functions

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

9 years agoMerge "Fix a memory corruption issue when vector resize"
Dan Stoza [Tue, 14 Apr 2015 17:50:39 +0000 (17:50 +0000)]
Merge "Fix a memory corruption issue when vector resize"

9 years agoCheck orientation range has been initialized first
baik.han [Tue, 14 Apr 2015 10:49:28 +0000 (19:49 +0900)]
Check orientation range has been initialized first

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>
9 years agoMerge "Command to move private app data between volumes."
Jeff Sharkey [Fri, 10 Apr 2015 21:00:41 +0000 (21:00 +0000)]
Merge "Command to move private app data between volumes."

9 years agoCommand to move private app data between volumes.
Jeff Sharkey [Thu, 9 Apr 2015 03:56:42 +0000 (20:56 -0700)]
Command to move private app data between volumes.

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

9 years agoFix a memory corruption issue when vector resize
ywen [Thu, 26 Mar 2015 11:51:12 +0000 (19:51 +0800)]
Fix a memory corruption issue when vector resize

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

9 years agoMerge "Start accepting volume UUIDs from framework."
Jeff Sharkey [Thu, 9 Apr 2015 21:41:11 +0000 (21:41 +0000)]
Merge "Start accepting volume UUIDs from framework."

9 years agoStart accepting volume UUIDs from framework.
Jeff Sharkey [Thu, 9 Apr 2015 20:10:03 +0000 (13:10 -0700)]
Start accepting volume UUIDs from framework.

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

9 years agoMerge "More volume UUID awareness."
Jeff Sharkey [Thu, 9 Apr 2015 19:45:03 +0000 (19:45 +0000)]
Merge "More volume UUID awareness."

9 years agoMore volume UUID awareness.
Jeff Sharkey [Thu, 9 Apr 2015 18:34:03 +0000 (11:34 -0700)]
More volume UUID awareness.

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

9 years agoMerge "Installd: Fix Clang build"
Andreas Gampe [Thu, 9 Apr 2015 16:55:48 +0000 (16:55 +0000)]
Merge "Installd: Fix Clang build"

9 years agoInstalld: Fix Clang build
Andreas Gampe [Thu, 9 Apr 2015 16:52:45 +0000 (09:52 -0700)]
Installd: Fix Clang build

Remove some unused parameters and variables.

Change-Id: I507ae48fe1744b800ceb29192d463fd26c2ccda7

9 years agoMerge "Plumb through volume UUID when building paths."
Jeff Sharkey [Thu, 9 Apr 2015 16:27:18 +0000 (16:27 +0000)]
Merge "Plumb through volume UUID when building paths."