Commit Graph

47108 Commits

Author SHA1 Message Date
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
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
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
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
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
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
Mathias Agopian
2ae7bec770 Revert "improve sensor fusion" -- DO NOT MERGE
This reverts commit bdf277355d.
This reverts commit dc5b63e40e.

it might be responsible for a regression that makes the
rotation vector spin.

Bug: 7267330
Change-Id: Ifb10e933537e70c1d85a7ba73a7e3ae59002fe62
2012-10-01 20:31:05 -07:00
Jeff Sharkey
0c2a25c11c Merge "Include Global table in bugreports." into jb-mr1-dev 2012-10-01 13:08:22 -07:00
Jeff Sharkey
719b8aa1c5 Include Global table in bugreports.
Bug: 7257648
Change-Id: I84c7230fd115cf9d7269bc5367026b52cbcc86ac
2012-10-01 12:52:42 -07:00
Jamie Gennis
d30b36d1fd SurfaceFlinger: reset the FB_TGT acquire fence
This change makes SurfaceFlinger reset the acquire fence fd to -1 after each
call to HWComposer::commit.  The HWComposer implementation is resonsible for
closing the fd, so SurfaceFlinger should make sure not to pass it to HWC
multiple times.

Change-Id: I79554d9f6d6ef2b77d632d40251516c1f5b16ddb
Bug: 7258954
2012-10-01 12:24:59 -07:00
Dianne Hackborn
ec0f5e5f0c Merge "Fix issue #7257947: Need to fix heap limits on Mako" into jb-mr1-dev 2012-10-01 11:38:19 -07:00
Mathias Agopian
135e5899f7 save/restore viewport properly when taking screenshot
Bug: 7241739
Change-Id: Iba8b9ffc75ab47fbc56169e65da26d96850a9297
2012-09-30 16:43:20 -07:00
Dianne Hackborn
c84e9844d6 Fix issue #7257947: Need to fix heap limits on Mako
Change-Id: Id8014b19195b8740bccf000ab66c1b599ba3a1a0
2012-09-30 16:26:49 -07:00
Mathias Agopian
bae92d0d60 reset GL viewport and project when caputring the screen
Bug: 7241739
Change-Id: I3bb5214b070384de9be2026647865c6c236a4331
2012-09-28 13:34:26 -07:00
Andy McFadden
c01a79d77b Pass display arg to blank/unblank
This allows us to blank and unblank displays other than the built-in
display (e.g. HDMI).

Bug: 7240511
Change-Id: I89ea13f9e497be74c3e1231d0c62fb558e93e0f8
2012-09-28 13:04:16 -07:00
Chet Haase
4c2732779a Merge "Re-enable FAST_TLS in gl2 code" into jb-mr1-dev 2012-09-28 12:38:29 -07:00
Andreas Huber
589e2e74e4 Merge "Add a way to configure an OMX encoder to emit SPS/PPS before IDR frames." into jb-mr1-dev 2012-09-28 12:31:32 -07:00
Chet Haase
e8b0fac720 Re-enable FAST_TLS in gl2 code
Temporarily changed USE_FAST_TLS_KEY ifdef during debugging. Changing it
back now.

Change-Id: I7c2fcf7265b3d545e31ff7683bd7614100fad3e5
2012-09-28 11:56:48 -07:00
Andreas Huber
7682a9c35a Add a way to configure an OMX encoder to emit SPS/PPS before IDR frames.
Change-Id: I71ce254533c8e99bc54d199d8a9828397fe3d99d
related-to-bug: 7245308
2012-09-28 11:33:17 -07:00
Jamie Gennis
a4310c8be2 SurfaceFlinger: don't always set HWC_GEOM_CHGD
This change fixes a bug in SurfaceFlinger that caused the HWC_GEOMETRY_CHANGED
flag to be set every flip.

Change-Id: I4f395a2883bcbb53b23b3d14941aff108739c9f0
Bug: 7234237
2012-09-27 17:27:20 -07:00
Romain Guy
cb094a783f Merge "New compile-time flags to make debugging easier for us poor souls Bug #7195815" into jb-mr1-dev 2012-09-27 16:04:04 -07:00
Iliyan Malchev
38b657265c Revert "Compatibility work around for bad graphics driver dependency."
This reverts commit a50b51c03a

Change-Id: Ibdcd776a7f241dbb2475403ea04f939249774c41
2012-09-27 15:52:12 -07:00
Romain Guy
f12fe43e8c New compile-time flags to make debugging easier for us poor souls
Bug #7195815

Change-Id: I23e7ac991891b9586cb8ed20b1305c8b1b3e2b43
2012-09-27 15:47:10 -07:00
Mathias Agopian
1e83690c60 Merge "assert -eng builds when calling a GL function without a context" into jb-mr1-dev 2012-09-26 18:48:54 -07:00
Mathias Agopian
455e360149 assert -eng builds when calling a GL function without a context
Bug: 7241626

Change-Id: I0f1f9361e75e9186af8cff8d98a7d2224b266765
2012-09-26 17:37:53 -07:00
Andy McFadden
e206549ccf Merge "Recompute visible regions more vigorously" into jb-mr1-dev 2012-09-26 17:27:43 -07:00
Andy McFadden
ab10c5804c Recompute visible regions more vigorously
Some of the code in latchBuffer was calling invalidateHwcGeometry,
but that didn't cause the SurfaceFlinger visible region code to
re-evaluate the layer's visibility.  Set the recomputeVisibleRegions
"out" parameter instead.

Bug 7235797

Change-Id: If6ba33fbd1a594cd64cc5253aebf752d6ceda1c9
2012-09-26 16:19:12 -07:00
Jesse Hall
a8026d21f3 Stop using transparent region for computing visible regions
The transparent region hint is computed only from view layout
locations, ignoring post-layout translation. If a SurfaceView is layed
out with no other views above it, but a view is moved above it
post-layout, that view's layout bounds would be subtracted from the
window's transparent region instead of its drawing bounds. Prior to
this change, the view would not be visible (except where its layout
bounds and drawing bounds overlap).

With this change, composition uses visible regions computed without
regard to the transparent regions. However, if all of a layer's
visible region is transparent, it will be removed from the list of
layers to composite. This doesn't fix the root problem of incorrect
transparent regions, and doesn't prevent bad composition in all cases.
But it does avoid it for some existing apps, whiel still allowing the
transparent region hint to save power in the important
fullscreen-video-in-a-SurfaceView case.

Bug: 7179570
Change-Id: I47cf939e12129b167afa344b8b036e8827103ac8
2012-09-26 14:41:51 -07:00
Mathias Agopian
c4a8daaa99 Merge "add support for EGL_FRAMEBUFFER_TARGET_ANDROID" into jb-mr1-dev 2012-09-25 22:56:30 -07:00
Mathias Agopian
32341381c9 only abort when errors happen on the main display
Bug: 7232690
Change-Id: I2c4b35a82f131da26deea738ef294e100e536d15
2012-09-25 19:16:28 -07:00
Mathias Agopian
722b98f9df add support for EGL_FRAMEBUFFER_TARGET_ANDROID
we now try first with EGL_FRAMEBUFFER_TARGET_ANDROID, and
pick the first config we find. Otherwise, we revert to
the old algorithm.

Bug: 7232584

Change-Id: I8d5c5a4ce48420832c2e2828718a8f53325effb0
2012-09-25 18:38:09 -07:00
Mathias Agopian
7b19051137 fix a crasher when running out of memory
MemoryHeapBase::getBase() returns MAP_FAILED in case or
OOM, not null which is what SF was checking against.

This addresses one of the issues of bug 7230543.

Bug: 7230543
Change-Id: I763a88f64a2f9ff75eb139cfbaf9a1a9746c5577
2012-09-25 15:30:38 -07:00
Mathias Agopian
bb53b0e4b9 When "show visible regions" is enabled we were missing a call to HWC
Bug: 7204034
Change-Id: I64dd78362fa75149513a7d9ff92dde175e9b4958
2012-09-25 14:40:22 -07:00
Andy McFadden
f68c825c75 Merge "Show build config in dumpsys SurfaceFlinger" into jb-mr1-dev 2012-09-25 13:48:16 -07:00
Ian Rogers
ad901448d7 Merge "Configure GC free to be 8MB for devices with >512MB RAM." into jb-mr1-dev 2012-09-25 11:36:23 -07:00
Andy McFadden
4803b74e2a Show build config in dumpsys SurfaceFlinger
This adds a line to the "dumpsys SurfaceFlinger" output that shows
build-time configuration values.

Example:
 Build configuration: [sf HAS_CONTEXT_PRIORITY] [libui] \
  [libgui USE_FENCE_SYNC]

Bug 7206633

Change-Id: Ibe1856b459d34a4be6ee83a4ebfd2807e6cc68a0
2012-09-25 11:31:46 -07:00
Mathias Agopian
a046dd9772 fix Layer croping in SurfaceFlinger
Bug: 7224628
Change-Id: I9421f0a06b9a27fe00eefaa1dfab8c4309c380c9
2012-09-24 22:15:47 -07:00
Mathias Agopian
e96e9e1093 fix a crasher in SurfaceTexture's setFilteringEnabled
bug: 7211067
Change-Id: Id8658a8df429d76c20ab9112858b38e52343dc9c
2012-09-24 19:26:11 -07:00
Mathias Agopian
13de369980 Merge changes I47cd25c9,I7638ffe8 into jb-mr1-dev
* changes:
  don't call eglMakeCurrent() before calling HWC commit() on HWC 1.1
  handle EGL errors
2012-09-24 18:31:48 -07:00
Jamie Gennis
2f45d7464a Merge "EGL: add the EGL_ANDROID_framebuffer_target enum" into jb-mr1-dev 2012-09-24 18:21:14 -07:00