Commit Graph

47123 Commits

Author SHA1 Message Date
Iliyan Malchev
51af710d3b Revert "Compatibility work around for bad graphics driver dependency."
This reverts commit a50b51c03a

Change-Id: Ibdcd776a7f241dbb2475403ea04f939249774c41
2012-09-27 17:58:20 -07:00
The Android Automerger
6c729ef4b5 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-09-27 06:59:44 -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
The Android Automerger
08351c8f82 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-09-26 06:59:39 -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
e272b25aa9 only abort when errors happen on the main display
Bug: 7232690
Change-Id: I2c4b35a82f131da26deea738ef294e100e536d15
2012-09-25 20:47:29 -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
The Android Automerger
52d3d4de88 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-09-25 06:59:51 -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
Jamie Gennis
363847d498 Merge "EGL: expose the EXT_create_context_robustness ext" into jb-mr1-dev 2012-09-24 18:20:51 -07:00
Mathias Agopian
2a23184e41 don't call eglMakeCurrent() before calling HWC commit() on HWC 1.1
this call is not needed and misleading on HWC 1.1; it can also have
a negative performance impact when multiple displays are used.

Bug: 7124069
Change-Id: I47cd25c9d6e69abcc9333b9ecd5044e8fb1919ec
2012-09-24 18:12:35 -07:00
Mathias Agopian
52e21483fa handle EGL errors
for now we just restart the runtime.

bug: 7225248
Change-Id: I7638ffe82075a4db9e7e6f9e35cf48afcb5a387a
2012-09-24 18:07:21 -07:00
Mathias Agopian
500407a2c0 log an error when eglCreateContext() fails in an inconsistant way
this will help debugging bug: 7216919

Change-Id: I54ac65f20c5ed55cc93a5cbc5350fadfb0fcb804
2012-09-24 17:57:48 -07:00
Jamie Gennis
3ff48e5e69 EGL: add the EGL_ANDROID_framebuffer_target enum
Change-Id: Id8b1b114e2a7a88956b857c63a0429e9b33fdb5c
2012-09-24 13:45:33 -07:00
Jamie Gennis
09b11432b6 EGL: expose the EXT_create_context_robustness ext
Change-Id: I1db43e96aa5e9e91a6176a4a3e5aa9d1f3ee4a7e
2012-09-24 13:45:32 -07:00
Jamie Gennis
ff5c4aa676 Merge "ConsumerBase: make fence names meaningful" into jb-mr1-dev 2012-09-24 13:36:56 -07:00
Jamie Gennis
7aff4a5de4 ConsumerBase: make fence names meaningful
Change-Id: I3580120cb63c027c327e80ec70e68650b75395de
2012-09-24 12:25:53 -07:00
The Android Automerger
7fd6694905 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-09-23 18:59:59 -07:00
Ian Rogers
720501c8ef Configure GC free to be 8MB for devices with >512MB RAM.
b/6606849

Change-Id: Idad46032b4b5d309db0319caeb7a1dfc0550f9f7
2012-09-23 16:41:57 -07:00
Eino-Ville Talvala
33baee5d88 Merge "Add android.hardware.camera.any feature to camera permissions." into jb-mr1-dev 2012-09-23 10:20:54 -07:00
Eino-Ville Talvala
e95822715e Add android.hardware.camera.any feature to camera permissions.
Bug: 6847310
Change-Id: I9283932a7c211cd08b3b9fe6a93d8f219e6c9767
2012-09-23 09:53:51 -07:00
The Android Automerger
0615c8aba8 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-09-22 09:41:58 -07:00
Mathias Agopian
9e2463e717 add/remove displays properly on hotplug events
Bug: 7191563
Change-Id: I8f0fbf3b29658c9479443141798e6f288a1f2d52
2012-09-21 18:26:16 -07:00
Mathias Agopian
ff28e201ec Display events now always carry the display id they happened on
Change-Id: I12de1d883c23927722bc3a71b782f0079de4e831
2012-09-21 14:20:35 -07:00
Mathias Agopian
b4d18ed34e fix an issue where hotplug events were not dispatched
Change-Id: I527eec77f338cd6f1a9021aa4c9d384dbddd6d2a
2012-09-21 14:20:35 -07:00
Jamie Gennis
16cfa2e38b Merge "SurfaceTexture: fix an out of bounds array write" into jb-mr1-dev 2012-09-21 13:43:24 -07:00
Jamie Gennis
e0606e2987 Merge "Add a spec for EGL_ANDROID_framebuffer_target." into jb-mr1-dev 2012-09-21 12:16:38 -07:00
Jamie Gennis
d1b330de41 SurfaceTexture: fix an out of bounds array write
This change fixes an issue causing the mEglContext member of a SurfaceTexture
to get incorrectly zeroed out.  This would happen when a call to
ConsumerBase::releaseBufferLocked resulted in the current buffer being freed.
Freeing the current buffer would set SurfaceTexture::mCurrentTexture to -1,
which would then be used by SurfaceTexture::releaseBufferLocked to reset the
current slot's EGLSyncKHR to EGL_NO_SYNC_KHR (= 0).  This would overwrite the
mEglContext field, resulting in context mismatch errors in
SurfaceTexture::doGLFenceWaitLocked.

The fix is to simply use the buffer slot that's passed in to
SurfaceTexture::releaseBufferLocked rather than mCurrentTexture.

Change-Id: I0e5e2bd88fcbb354c35a3744f317716fff3e0e41
2012-09-21 12:15:22 -07:00
Jamie Gennis
aaf421c465 Add a spec for EGL_ANDROID_framebuffer_target.
This change adds a new extension for EGL implementations to indicate the
EGLConfigs that support use as a HWComposer framebuffer target layer.

Change-Id: Ia7c8fbe8da09d57b4ec8bf1d9ddb67ca21aa2885
2012-09-21 12:15:22 -07:00
The Android Automerger
ae18e61481 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-09-21 06:59:47 -07:00
Mathias Agopian
4c0751a1f6 return an error, as expected, when querying a disconnected display
Change-Id: I405a3a7bb42b9bbd2ec7bfe09e60e1b7acf7389d
2012-09-20 21:28:12 -07:00
Mathias Agopian
38e623bc5c fix a typo preventing pre hwc-1.1 devices from booting
Change-Id: Icf01254689633d04967872749ac947a671e47ed8
2012-09-20 19:27:07 -07:00
Mathias Agopian
f5a3392834 we now correctly set-up connected screens during boot
Change-Id: Ie8b1a3b97ad1821cc970e43abe96c8cec7135b66
2012-09-20 17:13:58 -07:00
Mathias Agopian
148994e5f3 We now report hotplug events to the framework
Change-Id: I2d6b7787d39e5929485a551e4982498c5053c211
2012-09-20 17:13:58 -07:00
Mathias Agopian
1604f777d1 one more step toward HDMI support
getDisplayInfo() now returns proper information for
HWC managed displays.

hotplug is sitll not supported; so this is not fully correct
as the information returned will be bogus if the HDMI screen
is not plugged in.

Bug: 7191563
Change-Id: If55d8e829fae0443571548155007f486cdf9bc9f
2012-09-20 17:13:58 -07:00
Mathias Agopian
eba8c688f6 calculate wether we filter on a per-display basis
Change-Id: I79d80b432b20b3d02428da19add464ac1e2b9378
2012-09-20 17:13:58 -07:00
Mathias Agopian
f33e4b6f13 GraphicBufferAlloc class was declared twice
this was confusing because the one in FramebufferSurface
wasn't in fact being used

Change-Id: Ied45aec20d804cfbe52440f9b2f2852a85c757cf
2012-09-20 17:13:58 -07:00