Commit Graph

51822 Commits

Author SHA1 Message Date
Saurabh Shah
f948105810 sf: Initialize EventThread before creating HWC
Once HWC is created, it could use any of the provided hooks, which
could lead to a crash if the EventThread (handler) isn't initialized
prior to creating HWC.

Change-Id: I5ea35fe9bcb150fb74aae1295b798bd787ad6cee
2015-06-17 11:08:29 -07:00
Mark Salyzyn
2ab05fc551 Merge "dumpstate: modify logcat timeout to compensate for storage speed" 2015-06-15 14:27:11 +00:00
Mark Salyzyn
f989162bb8 dumpstate: modify logcat timeout to compensate for storage speed
Discover the logcat buffer size, divide by the worst storage
speed in kb/s, and multiply by ten to estimate the timeout in
ms for each named buffer. If that value is less than 20 seconds,
then select 20 seconds. Apply this to each logcat request.

Bug: 21555259
Change-Id: Id36aebff83cb06e94350e4a84fa266b66a8444fc
2015-06-12 13:19:04 -07:00
Dan Stoza
2b5b55e73c Merge "sf: Fix incorrect state reporting in dumpsys" 2015-06-12 16:47:21 +00:00
Manoj Kumar AVM
e54506b81a sf: Fix incorrect state reporting in dumpsys
Dumpsys utility accesses layer compositionType variable
with out proper protection. These variables are modified
during hwc_prepare call. Existing HAL lock protection is not
sufficient to address this issue. Failure to do this will
result in incorrect state reporting in dumpsys.

A new displayLock mutex in HWComposer will be used in both
dumpsys and draw calls to ensure correct state is accessed.

Change-Id: I8a57de59525adc0e089b3bed95c067c01e42b666
2015-06-11 18:21:18 -04:00
Dan Stoza
85e271d051 Merge "sf: Add a NULL check in getDisplayConfigs" 2015-06-11 19:31:44 +00:00
Tatenda Chipeperekwa
40da48bfdf sf: Add a NULL check in getDisplayConfigs
Validate the display binder by adding a NULL check in getDisplayConfigs.
This will prevent a false match if the caller queries the display
configs for an inactive display (whose binder is NULL by default).

Without this change we might end up attempting to index the display
config array, which is unpopulated for inactive displays, and this will
result in a crash. (See getDisplayInfo in SurfaceComposerClient.cpp for
an example of this scenario)

Change-Id: Ib32a7dc8378d3438df0dba1ecd608bbcfc837717
2015-06-11 12:28:41 -07:00
Dan Stoza
ffe3e96afe Merge "GLConsumer: Fix crop math" 2015-06-11 17:34:15 +00:00
Dan Stoza
68efa84e7e GLConsumer: Fix crop math
When we have excess pixels that need to be removed from (for example)
the left and right sides, we currently do something like:

  left += excess / 2;
  right -= excess / 2;

If excess is odd, however, this removes 1 too few pixels since the odd
pixel gets rounded down twice. This changes the math to effectively:

  left += excess / 2;
  right -= (excess - excess / 2);

Which removes the correct total number of pixels.

Bug: 19611086
Change-Id: I8d1ad9fe7ba67c149794c148663d12acbccccef0
(cherry picked from commit ec4cb38750)
2015-06-11 10:20:23 -07:00
Dan Stoza
127cf2eff6 Merge "SF: Swap w/h when capturing rotated screenshots" 2015-06-10 18:10:07 +00:00
Dan Stoza
65dc7eeff0 SF: Swap w/h when capturing rotated screenshots
Swaps width and height when capturing a screenshot that is rotated by
90 or 270 degrees.

Bug: 8433742
Change-Id: Ibf0b604f541e3cc271e56fe0ad04dc366beb5d79
(cherry picked from commit 3502416204)
2015-06-10 10:33:21 -07:00
Dan Stoza
5ab3ba1e43 Merge "SF: Don't crop surface damage against viewport" 2015-06-09 20:28:59 +00:00
Dan Stoza
074a13a3cb SF: Don't crop surface damage against viewport
Apply the display transform to surface damage, but don't intersect it
with the viewport.

Bug: 21486007
Change-Id: I94e697cea52096a960385d5f3b89609fdcf30a02
(cherry picked from commit 17833a1b0d)
2015-06-09 13:27:45 -07:00
Dan Stoza
816c9e0eab Merge "libgui/SurfaceFlinger: Add getConsumerName" 2015-06-09 18:34:11 +00:00
Dan Stoza
53a2e97a78 libgui/SurfaceFlinger: Add getConsumerName
Adds a getConsumerName method to IGraphicBufferProducer and Surface.
Currently, the name is cached inside of IGBP and is update on connect
and dequeueBuffer, which should be good enough for most uses.

Bug: 6667401
Change-Id: I22c7881d778e495cf8276de7bbcd769e52429915
(cherry picked from commit c6f30bdee1)
2015-06-09 11:28:37 -07:00
Dan Stoza
b169b49aec Merge "libgui: Add generation numbers to BufferQueue" 2015-06-09 18:23:48 +00:00
Dan Stoza
993772a60a libgui: Add generation numbers to BufferQueue
This change allows producers to set a generation number on a
BufferQueue. This number will be embedded in any new GraphicBuffers
created in that BufferQueue, and attempts to attach buffers which have
a different generation number will fail.

It also plumbs the setGenerationNumber method through Surface, with the
additional effect that any buffers attached to the Surface after
setting a new generation number will automatically be updated with the
new number (as opposed to failing, as would happen on through IGBP).

Bug: 20923096
Change-Id: I32bf726b035f99c3e5834beaf76afb9f01adcbc2
(cherry picked from commit 812ed0644f)
2015-06-08 11:18:16 -07:00
Nick Kralevich
c19fdee38a Merge "Call selinux_status_open() prior to use of selinux_status_updated()." 2015-06-03 13:33:37 +00:00
Stephen Smalley
bea0746b24 Call selinux_status_open() prior to use of selinux_status_updated().
The selinux_status_*() interfaces require calling selinux_status_open()
first.  Since this was not being called by servicemanager, the
selinux_status_updated() call was always failing and servicemanager
was not reloading service_contexts upon a policy reload.

Change-Id: I6ac62e114bbca99c5f0999feb918fcde15009274
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-06-03 09:27:08 -04:00
Dan Stoza
8980e0ccd4 Merge "libgui: Propagate error by clearing sp<GB>" 2015-06-01 21:59:20 +00:00
Dan Stoza
3d6022a43e libgui: Propagate error by clearing sp<GB>
Clears the sp<GraphicBuffer> returned by createGraphicBuffer when there
is an error during unflattening.

Bug: 21498231
Change-Id: I886da4474fc06853cc59188d62044b7d7549126b
(cherry picked from commit 6a04e5fcf6)
2015-06-01 14:58:35 -07:00
Dan Stoza
cf1edb3f3e Merge "Fix libgui crop matrix test." 2015-06-01 18:31:19 +00:00
Michael Lentine
34228137cc Fix libgui crop matrix test.
On devices that have the crop image extension the crop is not applied to the
transform matrix so we have to expect different results in this case.

Change-Id: If62dec1111fb77c9fa2c4332d121665960ce0216
(cherry picked from commit 04b00cea67)
2015-06-01 11:30:15 -07:00
Dan Stoza
75145aa2b7 Merge "SF: Reduce resync samples without present" 2015-06-01 18:27:35 +00:00
Dan Stoza
ef78916d86 SF: Reduce resync samples without present
Reduces the number of resync samples that DispSync will attempt to
collect without an intervening present from 12 to 4. The former value
was causing excessive power draw for some vendors' implementations, and
reducing it doesn't seem to harm anything.

Bug: 20724456
Change-Id: Ifd6e0490be67756ed001d509a38e8a36953b4618
(cherry picked from commit 9c64757f65)
2015-06-01 11:26:34 -07:00
Dan Stoza
edcfe7c513 Merge "libui: Apply GRALLOC_USAGE_ALLOC_MASK during alloc" 2015-06-01 18:25:50 +00:00
Dan Stoza
24fa67f62a libui: Apply GRALLOC_USAGE_ALLOC_MASK during alloc
Applies GRALLOC_USAGE_ALLOC_MASK to the incoming usage bits before
calling alloc on the gralloc module. This filters out the new flag
GRALLOC_USAGE_FOREIGN_BUFFERS, which is used to send a hint to the
producer, but which does not affect the allocation of buffers.

Bug: 19801661
Change-Id: Ia37a3eddba2e97598e50ac3e10877430adfa9247
(cherry picked from commit b8efdc4003)
2015-06-01 11:21:56 -07:00
Dan Stoza
c76683f51f Merge "Check that width and height parameters are small." 2015-06-01 18:18:42 +00:00
Michael Lentine
9530388b26 Check that width and height parameters are small.
The product of width and height should be less than UINT32_MAX (in practice
smaller). Adding the checks prevents overflows when allocating buffers.

Bug: 20726612
Change-Id: I9769edf0688a9bfe69906d49fa0540cadf4c49b0
(cherry picked from commit 1c4537e2e8)
2015-06-01 11:12:28 -07:00
Dan Stoza
a8702c4765 Merge "SurfaceFlinger: Tweak whitespace in DdmConnection" 2015-05-28 21:25:11 +00:00
Dan Stoza
42ace4b5c6 SurfaceFlinger: Tweak whitespace in DdmConnection
Change-Id: I99e7b09e4bc3611ffb790eddfbb9b3c8b9bc5d4c
2015-05-28 14:23:54 -07:00
Dan Stoza
5566d9db26 Merge "Bypass surface flinger permission check for calls from system." 2015-05-28 21:21:28 +00:00
Dan Stoza
13c04c2762 Merge "surfaceflinger: Fix range check for getFormat" 2015-05-28 21:20:59 +00:00
Jeff Brown
8b04725f14 Bypass surface flinger permission check for calls from system.
Early during the boot, before activity manager is ready to handle
permission checks, the system needs to be able to change the display
state.  Added a hardcoded exemption for AID_SYSTEM (which already
has permission to talk to surface flinger anyhow).

Bug: 19029490
Change-Id: I6222edcab8e394e5fb6adf7a982be446e4505a1e
(cherry picked from commit 3bfe51d790)
2015-05-28 14:19:22 -07:00
Ajay Dudani
ae569747b6 surfaceflinger: Fix range check for getFormat
Fix potential buffer overflow error in getFormat with indices
greater than MAX_HWC_DISPLAYS.

Change-Id: I5e5b69d8d043e900f5e33ca9a62e94ae5f857b68
(cherry picked from commit 4e3e30c2d5)
2015-05-28 14:19:10 -07:00
Dan Stoza
20f7a6f004 Merge "Modify EGL to disconnect the window when the surface gets destroyed." 2015-05-28 21:10:35 +00:00
Michael Lentine
87dd528bee Modify EGL to disconnect the window when the surface gets destroyed.
Bug: 14445579

Change-Id: I1d263ff6cffcb6e448761fca7ca4b06466ad65aa
(cherry picked from commit 00699fa641)
2015-05-28 14:09:36 -07:00
Dan Stoza
c2bdfb8694 Merge "SF: Skip render-to-texture for color transforms" 2015-05-28 21:02:23 +00:00
Dan Stoza
0af1e0feb6 Merge "Add hotplug support for primary display." 2015-05-28 20:59:45 +00:00
Dan Stoza
35283482d0 Merge "libgui: Fix surface damage on rotated buffers" 2015-05-28 20:57:48 +00:00
Dan Stoza
0a70ed998c Merge "Fix surfaceflinger tests." 2015-05-28 20:55:44 +00:00
Dan Stoza
4ebb44e8cc Merge "Fix libgui tests." 2015-05-28 20:54:05 +00:00
Dan Stoza
10cb68fb97 Merge "fix BufferItem flatten/unflatten alignment" 2015-05-28 20:51:56 +00:00
Dan Stoza
1bdeb9d84f Merge "Refactor ConsumerBase and it's derived classes." 2015-05-28 20:48:47 +00:00
Jesse Hall
5a606c3ab9 Merge "Fix EGL shim extension injection for GL ES 3 drivers." 2015-05-28 20:46:45 +00:00
Dan Stoza
d19ad6fb67 Merge "Add ConsumerBase::isAbandoned" 2015-05-28 20:40:00 +00:00
Dan Stoza
8e8eba5091 SF: Skip render-to-texture for color transforms
In cases where SurfaceFlinger is applying a color matrix (usually for
accessibility features), we previously would perform a render-to-
texture for the initial composition, and then apply the matrix during
a copy to the framebuffer. This changes that behavior to just apply the
matrix during composition without a render-to-texture pass.

This may result in a perceived change of the image in cases with alpha
blending, since the blending is performed at a different stage of the
pipeline and the system effectively performs non-linear blends.
However, neither this nor the prior render-to-texture pass is strictly
correct in that regard, and this approach is less error-prone and
likely faster.

Change-Id: I2110ff0374f61d76df7b087dde8a1ed98990440c
(cherry picked from commit f008799d37)
2015-05-28 13:35:39 -07:00
Michael Lentine
d74ba85c6f Add hotplug support for primary display.
When the primary is connected/disconnected on tv devices HWComposer updates
it's display parameters but doesn't destroy or recreate the display.

Bug: 18698244

Change-Id: I759c8f75d3e3a7462b85eb51973fb5072b71a702
(cherry picked from commit 10613dc3b5)
2015-05-28 13:35:24 -07:00
Dan Stoza
076d25b19d libgui: Fix surface damage on rotated buffers
Flips the width and height when the buffer comes in with a 90 degree
rotation so that performing the Y-flip from GL works correctly.

Bug: 20761426
Change-Id: I41c9edc8549c6cbdb534277b996ff20c59034582
(cherry picked from commit 0e65e6c283)
2015-05-28 13:33:42 -07:00
Michael Lentine
b64d875152 Fix surfaceflinger tests.
Update the screenshot code and add correct return values to surface flinger's
capturescreenshot function.

Buf: 18138368

Change-Id: Ieb42d289088589f941502fbd69da7aa939265e07
(cherry picked from commit 5a16a62950)
2015-05-28 13:33:25 -07:00