Commit Graph

47244 Commits

Author SHA1 Message Date
Jamie Gennis
1efe099a51 BufferQueue: alloc without holding the lock
This change makes BufferQueue::dequeueBuffer release its mutex before
allocating new buffers.  This should alleviate lock contention in
SurfaceFlinger where SF's main thread can get blocked waiting for an allocation
operation to complete.

Bug: 7335075
Change-Id: I1b000539cc616a695afab2e9c68507db69e57b13
2012-10-11 20:08:26 -07:00
The Android Automerger
a58b6a4bcd merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-11 16:26:37 -07:00
The Android Automerger
8b4053a1aa merge in jb-mr1-factory-release history after reset to jb-mr1-dev 2012-10-11 08:19:15 -07:00
The Android Automerger
0c1c3948d3 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-11 07:03:50 -07:00
Jesse Hall
b763d5fffa Assume LayerScreenshot has pre-multiplied alpha
Bug: 7300129
Change-Id: Ie9114adc4b5c9a8cc3c65bfe6d9478b2cba4e0d8
2012-10-10 21:40:26 -07:00
Andy McFadden
f0c89b28be Merge "Fix HDMI unblank behavior" into jb-mr1-dev 2012-10-10 19:34:11 -07:00
Andy McFadden
9e9689c111 Fix HDMI unblank behavior
Two issues:

(1) We were announcing the hotplug event before we were ready to
handle blank/unblank events, so we were losing the initial unblank
that power manager sends us when HDMI is first plugged in.  This
left the display blank until you toggled the device power off/on.

(2) We were retaining fbTargetHandle for HDMI after the display was
disconnected.  The value didn't get updated when HDMI was reconnected
because the display was blank, so we didn't go through that code
path.  So, when HDMI was re-connected, we passed stale data into
the HWC.

Bug 7323938

Change-Id: I2335d24fd7b0f00bb23fc63aa7bcf44cb8857c73
2012-10-10 18:17:51 -07:00
The Android Automerger
a9e3004d69 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-10 14:06:39 -07:00
Chet Haase
8d5d201980 Revert "Add GL Error logs (temporary)"
This reverts commit 2da2c15068.
2012-10-10 13:10:40 -07:00
The Android Automerger
2de86a4e1b merge in jb-mr1-factory-release history after reset to jb-mr1-dev 2012-10-10 08:55:31 -07:00
The Android Automerger
a4927aea77 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-10 06:59:29 -07:00
Mathias Agopian
0acb00c2d7 Merge "fix typo that prevented proper loging of EGL error code" into jb-mr1-dev 2012-10-09 16:52:37 -07:00
Jeff Brown
c5b58166e8 Merge "don't automatically unblank external displays" into jb-mr1-dev 2012-10-09 16:50:56 -07:00
Mathias Agopian
b8fc00bfb4 fix typo that prevented proper loging of EGL error code
needed for investigating 7309949

Bug: 7309949
Change-Id: If29a5c08d0e87f46b44ba2e1030be61cb4d1403b
2012-10-09 16:44:48 -07:00
Mathias Agopian
45778999c7 Merge "Fence didn't manager sync_wait error codes properly" into jb-mr1-dev 2012-10-09 16:36:30 -07:00
Mathias Agopian
3292cae8c3 don't automatically unblank external displays
this should be handled by the display-manager. we were doing
that in SF because until recently we didn't have enough support
in the HAL. however, this is now causing other problems when
plugging hdmi while the screen is off for instance.

Bug: 7150885
Change-Id: I739b209056a765d38d05295cf202f67ee0f506ae
2012-10-09 14:49:01 -07:00
Mathias Agopian
b5c9dcdf3b Fence didn't manager sync_wait error codes properly
error codes are returned in errno, this caused ::waitForwever()
to only wait for 1 second and return improper error code (-1).

needed to help debugging 7316632

Bug: 7316632
Change-Id: Ie144f614a88393393972a3a770c6b4b0581f961a
2012-10-09 14:38:19 -07:00
The Android Automerger
c0609a2743 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-09 06:59:29 -07:00
Jeff Brown
2a09bb3219 Add blankDisplay/unblankDisplay to SurfaceComposerClient.
Bug: 7309812
Change-Id: Ia401d642094a46c62f0d26c65da1d11341e203a1
2012-10-08 19:13:57 -07:00
Mathias Agopian
cb55857bbd fix dumpsys Layer name when using multiple displays
Bug: 7288401
Change-Id: I14beeef58fac5270cef3b611e18c163060efe6c3
2012-10-08 15:57:17 -07:00
The Android Automerger
60b974f657 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-07 18:58:06 -07:00
Mathias Agopian
1b3aeb4844 fix SurfaceFlinger DDMS debugging
DdmHandleAppName.setAppName() signature changed which broke
this debugging feature.

Needed for debugging b\7267680

Change-Id: I4482bf5a441e91bef89d1ddea9a4152333be7f88
2012-10-07 16:41:12 -07:00
The Android Automerger
6e218edaa2 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-07 06:59:27 -07:00
Dave Burke
6d24eef4b6 Merge "Revert "ugly, temporary, workaroung for a problem where a binder thread spins forever"" into jb-mr1-dev 2012-10-07 01:06:15 -07:00
Dave Burke
0bed1f541d Revert "ugly, temporary, workaroung for a problem where a binder thread spins forever"
This reverts commit 0845d0245e

Change-Id: I395037cb9427cd11f7de6bb78fbdfa917fc6263a
2012-10-06 23:20:00 -07:00
Mathias Agopian
3e9f3b67b1 ugly, temporary, workaroung for a problem where a binder thread spins forever
Bug: 7289992
Change-Id: I0c3d482a1af57e5f444be2ba7f2751ac3e954af2
2012-10-06 00:39:26 -07:00
Dave Burke
dba919c5f3 Merge "ugly, temporary, workaroung for a problem where a binder thread spins forever" into jb-mr1-dev 2012-10-05 23:25:57 -07:00
Mathias Agopian
0845d0245e ugly, temporary, workaroung for a problem where a binder thread spins forever
Bug: 7289992
Change-Id: I0c3d482a1af57e5f444be2ba7f2751ac3e954af2
2012-10-05 17:28:04 -07:00
Jesse Hall
9504eb915c Fix race condition in ConsumerBase::addReleaseFence()
This needs the ConsumerBase mutex locked, but wasn't locking it. Two
of the four places that called it already held the lock so were fine.
Now addReleaseFence() takes the lock itself, and I added
addReleaseFenceLocked() for the two already-locked callers, since in
one of them dropping the lock would be inconvenient.

Bug: 7289269
Change-Id: I7a5628adb516f8eec782aa6c14128202f96d7b0a
2012-10-05 14:40:50 -07:00
The Android Automerger
0f326b9ab2 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-05 06:59:39 -07:00
Stephen Hines
0e8fcc2c27 Merge "Fix missing parens in CleanSpec.mk." into jb-mr1-dev 2012-10-04 21:42:30 -07:00
Mathias Agopian
e835976d28 Merge "Tone down a fatal assert" into jb-mr1-dev 2012-10-04 20:24:17 -07:00
Stephen Hines
d920670f25 Fix missing parens in CleanSpec.mk.
Change-Id: I0440a942d3e685d619ec9cc402d3293cb3f52df1
2012-10-04 20:05:19 -07:00
Chet Haase
27b28fd996 Merge "Add GL Error logs (temporary)" into jb-mr1-dev 2012-10-04 19:45:17 -07:00
Andy McFadden
5a8f9012ee Tone down a fatal assert
The new disconnectDisplay function doesn't handle virtual displays,
but it may be called for them.  Return without doing anything.

Bug 7281786

Change-Id: I62607f2ae6073fa66b393f55932604aeb8e03566
2012-10-04 19:09:45 -07:00
Raph Levien
3fbbd076ad Fix broken CleanSpec.mk in libs/gui
The CleanSpec is missing parens, which causes $P to be interpreted as a
single variable, and the following printed to the log:

Clean step: rm -rf RODUCT_OUT/obj/SHARED_LIBRARIES/libgui_intermediates

This patch adds parens as needed.

Change-Id: I587998fa67a4884418c286360a577cdbb6ea9a21
2012-10-04 19:00:45 -07:00
Mathias Agopian
947abbdd2c make sure we don't call into the HWC HAL when not needed
when enabling/disabling vsync we now make sure to
not call into the HAL if the state wouldn't change.

Bug: 7274951

Change-Id: Ie24a6d68888a51b577acf9c2a973d85437cbacaf
2012-10-04 18:06:03 -07:00
Chet Haase
2da2c15068 Add GL Error logs (temporary)
Adding logs to tell which specific methods throw OpenGL errors.

Change-Id: I1d73c7566ed1ea6610392020411762c6255a0ede
2012-10-04 17:15:59 -07:00
Jesse Hall
9a14392256 Ignore display state changes for disconnected displays
When a display is disconnected, removing it from SurfaceFlinger's
display list is non-atomic with removing it from the Display Manager
and any in-flight transactions. So SurfaceFlinger might get a display
state change transaction for a display it has already forgotten about.
Just ignore these.

Bug: 7288082
Change-Id: Ic27e55377f3db40fb34e3b1cd67e43297df117a2
2012-10-04 16:40:35 -07:00
Mathias Agopian
81cd5d3b94 make sure we don't call into the HWC HAL when not needed
when enabling/disabling vsync we now make sure to
not call into the HAL if the state wouldn't change.

Bug: 7274951

Change-Id: Ie24a6d68888a51b577acf9c2a973d85437cbacaf
2012-10-04 15:25:32 -07:00
Andy McFadden
eb1caaea69 Fix crashes after HDMI disconnect
The display was being removed from SurfaceFlinger's list before we
had a chance to reset HWComposer's layer list, so we were passing
stale data into the hardware composer (which has its own per-display
data).  This resulted in "invalid gralloc handle" complaints.
We now clear the layer list immediately after removing the display.

The display was being removed while its EGLSurface was still
"current", resulting in "cancelBuffer: BufferQueue has been
abandoned" complaints.  We now call makeCurrent on the primary
display before removing the external display.

Bug 7274254

Change-Id: Ia59e3a61d7ec46488b96bf93ec5e4ed3488b70e4
2012-10-04 14:42:03 -07:00
The Android Automerger
5031729a37 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-04 06:59:43 -07:00
Andy McFadden
27ec5739bc Fix crashes after HDMI disconnect
The display was being removed from SurfaceFlinger's list before we
had a chance to reset HWComposer's layer list, so we were passing
stale data into the hardware composer (which has its own per-display
data).  This resulted in "invalid gralloc handle" complaints.
We now clear the layer list immediately after removing the display.

The display was being removed while its EGLSurface was still
"current", resulting in "cancelBuffer: BufferQueue has been
abandoned" complaints.  We now call makeCurrent on the primary
display before removing the external display.

Bug 7274254

Change-Id: Ia59e3a61d7ec46488b96bf93ec5e4ed3488b70e4
2012-10-04 02:02:23 -07:00
Dianne Hackborn
078da147f4 Fix issue #7271589: Cannot set Ocean HD live wallpaper
Change-Id: Id7662c503815293040c240232a6622bd6f6eab37
2012-10-03 16:17:30 -07:00
Jamie Gennis
a573945df7 libgui: enable fence support for exynos5
Change-Id: Iffc48412b8c951116a956a3ac7dab8d75eed13da
Bug: 7238122
2012-10-03 15:55:14 -07:00
Jamie Gennis
3fd12e41af libgui: fix up compile options
This change adds debug info to SurfaceFlinger's dumpsys to indicate that the
USE_WAIT_SYNC compile option was enabled, and it removes the
ALLOW_DEQUEUE_CURRENT_BUFFER option.

Bug: 7238122
Change-Id: I70e08e34c2ef58aa6d2f88229e781a119f84b5a9
2012-10-03 15:05:58 -07:00
Dianne Hackborn
35387922bd Merge "Fix issue #7271589: Cannot set Ocean HD live wallpaper" into jb-mr1-dev 2012-10-03 12:09:13 -07:00
Dianne Hackborn
7f3096ca88 Fix issue #7271589: Cannot set Ocean HD live wallpaper
Change-Id: Id7662c503815293040c240232a6622bd6f6eab37
2012-10-03 11:27:19 -07:00
The Android Automerger
5ff5d16d32 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-03 06:59:44 -07:00
Jesse Hall
ba607d53c6 Add Fence::waitForever which logs a warning timeout, and use it
Bug: 7217641
Change-Id: If0c1a613ead307c4045a47824174bf40c72bc7d7
2012-10-02 16:29:46 -07:00