OSDN Git Service

android-x86/frameworks-native.git
11 years agoAdd a spec for EGL_ANDROID_framebuffer_target.
Jamie Gennis [Thu, 20 Sep 2012 20:55:24 +0000 (13:55 -0700)]
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

11 years agofix a typo preventing pre hwc-1.1 devices from booting
Mathias Agopian [Fri, 21 Sep 2012 02:27:07 +0000 (19:27 -0700)]
fix a typo preventing pre hwc-1.1 devices from booting

Change-Id: Icf01254689633d04967872749ac947a671e47ed8

11 years agowe now correctly set-up connected screens during boot
Mathias Agopian [Thu, 20 Sep 2012 01:16:22 +0000 (18:16 -0700)]
we now correctly set-up connected screens during boot

Change-Id: Ie8b1a3b97ad1821cc970e43abe96c8cec7135b66

11 years agoWe now report hotplug events to the framework
Mathias Agopian [Thu, 20 Sep 2012 00:31:36 +0000 (17:31 -0700)]
We now report hotplug events to the framework

Change-Id: I2d6b7787d39e5929485a551e4982498c5053c211

11 years agoone more step toward HDMI support
Mathias Agopian [Wed, 19 Sep 2012 04:54:42 +0000 (21:54 -0700)]
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

11 years agocalculate wether we filter on a per-display basis
Mathias Agopian [Thu, 20 Sep 2012 06:14:45 +0000 (23:14 -0700)]
calculate wether we filter on a per-display basis

Change-Id: I79d80b432b20b3d02428da19add464ac1e2b9378

11 years agoGraphicBufferAlloc class was declared twice
Mathias Agopian [Thu, 20 Sep 2012 23:54:14 +0000 (16:54 -0700)]
GraphicBufferAlloc class was declared twice

this was confusing because the one in FramebufferSurface
wasn't in fact being used

Change-Id: Ied45aec20d804cfbe52440f9b2f2852a85c757cf

11 years agoMerge "Disable the use of clock_gettime for now." into jb-mr1-dev
Ben Cheng [Thu, 20 Sep 2012 20:17:42 +0000 (13:17 -0700)]
Merge "Disable the use of clock_gettime for now." into jb-mr1-dev

11 years agoMerge "frameworks/native: Amend HDCP API" into jb-mr1-dev
Andreas Huber [Thu, 20 Sep 2012 16:29:41 +0000 (09:29 -0700)]
Merge "frameworks/native: Amend HDCP API" into jb-mr1-dev

11 years agoMerge "Allow 16-bit color EGLConfigs" into jb-mr1-dev
Jesse Hall [Thu, 20 Sep 2012 05:30:55 +0000 (22:30 -0700)]
Merge "Allow 16-bit color EGLConfigs" into jb-mr1-dev

11 years agoam 516efc1b: am 8a2b5423: Merge "libagl: Transform the vertex if using eye space...
Mathias Agopian [Thu, 20 Sep 2012 05:05:14 +0000 (22:05 -0700)]
am 516efc1b: am 8a2b5423: Merge "libagl: Transform the vertex if using eye space lighting with point lights"

* commit '516efc1bea1c05492c5d4636a589cfc686661842':
  libagl: Transform the vertex if using eye space lighting with point lights

11 years agoAllow 16-bit color EGLConfigs
Jesse Hall [Thu, 20 Sep 2012 04:00:49 +0000 (21:00 -0700)]
Allow 16-bit color EGLConfigs

The emulator without GPU acceleration only supports 16-bit
framebuffers.

Bug: 7185810
Change-Id: I883180367bf5b291d5e70427ab586d2e17868a96

11 years agoam 8a2b5423: Merge "libagl: Transform the vertex if using eye space lighting with...
Mathias Agopian [Thu, 20 Sep 2012 03:39:05 +0000 (20:39 -0700)]
am 8a2b5423: Merge "libagl: Transform the vertex if using eye space lighting with point lights"

* commit '8a2b54235a45f92827b13723380065d1ce308236':
  libagl: Transform the vertex if using eye space lighting with point lights

11 years agoMerge "libagl: Transform the vertex if using eye space lighting with point lights"
Mathias Agopian [Thu, 20 Sep 2012 02:31:52 +0000 (19:31 -0700)]
Merge "libagl: Transform the vertex if using eye space lighting with point lights"

11 years agoMerge changes I561c198c,Id4865f3c into jb-mr1-dev
Mathias Agopian [Wed, 19 Sep 2012 23:26:30 +0000 (16:26 -0700)]
Merge changes I561c198c,Id4865f3c into jb-mr1-dev

* changes:
  improve sensor battery usage tracking
  track UID with connections

11 years agofix typo in DisplayDevice logs
Mathias Agopian [Wed, 19 Sep 2012 23:25:29 +0000 (16:25 -0700)]
fix typo in DisplayDevice logs

Change-Id: I593ef674f12073bd9d690946447031394ef9044e

11 years agoDisable the use of clock_gettime for now.
Ben Cheng [Wed, 19 Sep 2012 21:53:10 +0000 (14:53 -0700)]
Disable the use of clock_gettime for now.

Bug: 7100774
Change-Id: I6ede2a37a5d485134fe419b5dc766f70ae4af9d4

11 years agoframeworks/native: Amend HDCP API
Deva Ramasubramanian [Tue, 18 Sep 2012 23:15:32 +0000 (16:15 -0700)]
frameworks/native: Amend HDCP API

- Allow caller to set the observer and cookie.
- Add more notifications that the HDCPModule can send to its Observer.

Change-Id: I8bf9cc02a029cd38bbd25d9f0a634452173f4d26
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
11 years agoimprove sensor battery usage tracking
Mathias Agopian [Wed, 19 Sep 2012 01:49:18 +0000 (18:49 -0700)]
improve sensor battery usage tracking

until now we were tracking when a sensors was
physically enabled or disabled and we were reporting
that to the BattaryService.

this wasn incorrect because we could have several different
apps enabling the same sensor, so the accounting by the
battery service would be incorrect in that case (depending
on the order in which these apps disabled said sensor).

BatteryService tracks sensors per uid, however SensorService
does this per binder connection, so we could have several
binder connections for the same uid, to solve this we keep
a list of sensor/uid -> count, which is the bulk of this
change.

Bug: 6661604
Change-Id: I561c198c42ba1736a8671bdacda4c76d72b9dd6f

11 years agotrack UID with connections
Mathias Agopian [Wed, 19 Sep 2012 00:02:43 +0000 (17:02 -0700)]
track UID with connections

Change-Id: Id4865f3cd27a95acdbbfdff1f2bb4123f312a13b

11 years agoMerge "fix a typo in SensorService" into jb-mr1-dev
Mathias Agopian [Wed, 19 Sep 2012 06:33:20 +0000 (23:33 -0700)]
Merge "fix a typo in SensorService" into jb-mr1-dev

11 years agoMerge "gui: conditionally set USE_NATIVE_FENCE_SYNC for msm8960" into jb-mr1-dev
Iliyan Malchev [Wed, 19 Sep 2012 03:28:04 +0000 (20:28 -0700)]
Merge "gui: conditionally set USE_NATIVE_FENCE_SYNC for msm8960" into jb-mr1-dev

11 years agogui: conditionally set USE_NATIVE_FENCE_SYNC for msm8960
Jeff Boody [Mon, 10 Sep 2012 16:24:07 +0000 (10:24 -0600)]
gui: conditionally set USE_NATIVE_FENCE_SYNC for msm8960

Change-Id: Ib7ad11597ef7c79162a0b0a49a1b8ae16d192c10
Signed-off-by: Iliyan Malchev <malchev@google.com>
11 years agofix a typo in SensorService
Mathias Agopian [Wed, 19 Sep 2012 00:18:54 +0000 (17:18 -0700)]
fix a typo in SensorService

It shouldn't have caused much harm though.
Also log a warning when enabling a sensor
for a connection that is already enabled.

Change-Id: Ia4a052381e79183cd4cb1bedc7ba08e5228d7a38

11 years agoimprove logging of external displays
Mathias Agopian [Tue, 18 Sep 2012 08:38:00 +0000 (01:38 -0700)]
improve logging of external displays

Change-Id: I041aebb7fc655aeca98bbf698d15e05d7c12cac9

11 years agosuppress superfluous log
Mathias Agopian [Tue, 18 Sep 2012 20:19:46 +0000 (13:19 -0700)]
suppress superfluous log

Change-Id: I838f2de4cf99e885833c4f42e2a69d6e3bb8eea5

11 years agoMerge "Check that HWC exists before trying to use it" into jb-mr1-dev
Jesse Hall [Tue, 18 Sep 2012 19:16:13 +0000 (12:16 -0700)]
Merge "Check that HWC exists before trying to use it" into jb-mr1-dev

11 years agoCheck that HWC exists before trying to use it
Jesse Hall [Tue, 18 Sep 2012 18:39:40 +0000 (11:39 -0700)]
Check that HWC exists before trying to use it

Bug: 7185810
Change-Id: I1271d6ba397f3abf0ef166b8d03b9b26b72e28d7

11 years agoSurfaceTexture: default to doing GL sync
Jamie Gennis [Mon, 17 Sep 2012 23:58:17 +0000 (16:58 -0700)]
SurfaceTexture: default to doing GL sync

This change makes updateTexImage default to performing the necessary
synchronization and adds an argument for SurfaceFlinger to disable that
synchronization so that it can be performed lazily.

Change-Id: I7c20923cc786634126fbf7021c9d2541aa77be5d
Bug: 6991805

11 years agoPlumb display name into SurfaceFlinger
Andy McFadden [Tue, 18 Sep 2012 01:27:17 +0000 (18:27 -0700)]
Plumb display name into SurfaceFlinger

The Surface createDisplay() call takes a display name for debugging.
This change carries it through SurfaceFlinger and displays it in
the "dumpsys SurfaceFlinger" output.

Bug 7058158

Change-Id: I79f3474a8656ff1beb7b478e0dbf2c5de666118a

11 years agofix external displays
Mathias Agopian [Tue, 18 Sep 2012 08:21:55 +0000 (01:21 -0700)]
fix external displays

we were not calling eglSwapBuffers() on external displays
because they can't use HWC which caused us to think they
didn't have GLES composition.

Change-Id: I6cef4ae40b138412d2e6f2acda33c9d222b03a83

11 years agoMerge changes I53d70510,If34a05f3 into jb-mr1-dev
Mathias Agopian [Tue, 18 Sep 2012 01:59:04 +0000 (18:59 -0700)]
Merge changes I53d70510,If34a05f3 into jb-mr1-dev

* changes:
  add support hwc 1.1
  refactor things a bit

11 years agoadd support hwc 1.1
Mathias Agopian [Fri, 14 Sep 2012 01:17:13 +0000 (18:17 -0700)]
add support hwc 1.1

Bug: 7124069

Change-Id: I53d705105c4ad8954d3f50ee4f4c8b7ec936b871

11 years agoMerge "EGL: fix an extension string bug" into jb-mr1-dev
Jamie Gennis [Tue, 18 Sep 2012 01:51:55 +0000 (18:51 -0700)]
Merge "EGL: fix an extension string bug" into jb-mr1-dev

11 years agoEGL: fix an extension string bug
Jamie Gennis [Sun, 16 Sep 2012 21:02:20 +0000 (14:02 -0700)]
EGL: fix an extension string bug

This change fixes a bug where initializing EGL multiple times (eglTerminate
followed by eglInitialize) would cause extensions to show up in the extension
string multiple times.

Change-Id: I707a3da62ed30ef13835087167f84a08bc6addd7

11 years agorefactor things a bit
Mathias Agopian [Thu, 13 Sep 2012 21:09:01 +0000 (14:09 -0700)]
refactor things a bit

- decouple GL and main display initialization
- ensure that each "supported" display has its own FramebufferSurface
- onScreenAcquired/Released now takes a display

Change-Id: If34a05f3dea40f6c79db77f4dde283a2580daac4

11 years agoMerge "Use a named constant rather than a magic number." into jb-mr1-dev
Elliott Hughes [Mon, 17 Sep 2012 19:11:24 +0000 (12:11 -0700)]
Merge "Use a named constant rather than a magic number." into jb-mr1-dev

11 years agoUse a named constant rather than a magic number.
Elliott Hughes [Mon, 17 Sep 2012 18:43:40 +0000 (11:43 -0700)]
Use a named constant rather than a magic number.

Change-Id: I86e8c91c6f5628df3eec38faf28598cc8cef2ea3

11 years agoam e917bfbd: am 09a22fc2: Merge "Allow disable of dumpstate vibrate"
jp abgrall [Mon, 17 Sep 2012 18:01:37 +0000 (11:01 -0700)]
am e917bfbd: am 09a22fc2: Merge "Allow disable of dumpstate vibrate"

* commit 'e917bfbd19c265ef09c90f93f5dc175fc62259f5':
  Allow disable of dumpstate vibrate

11 years agoam 09a22fc2: Merge "Allow disable of dumpstate vibrate"
jp abgrall [Mon, 17 Sep 2012 17:58:38 +0000 (10:58 -0700)]
am 09a22fc2: Merge "Allow disable of dumpstate vibrate"

* commit '09a22fc29d588b173e5c0dd2002ac2c44d45b7c6':
  Allow disable of dumpstate vibrate

11 years agoMerge "Allow disable of dumpstate vibrate"
jp abgrall [Mon, 17 Sep 2012 17:21:31 +0000 (10:21 -0700)]
Merge "Allow disable of dumpstate vibrate"

11 years agoAllow disable of dumpstate vibrate
John Michelau [Mon, 17 Sep 2012 16:20:19 +0000 (11:20 -0500)]
Allow disable of dumpstate vibrate

Change-Id: I747b757f4b5e2d6a472b7b2a19f8c1ca8a4b7fdd

11 years agoMerge "Print warnings when backwards timestamps are detected." into jb-mr1-dev
Ben Cheng [Sun, 16 Sep 2012 23:24:28 +0000 (16:24 -0700)]
Merge "Print warnings when backwards timestamps are detected." into jb-mr1-dev

11 years agoPrint warnings when backwards timestamps are detected.
Ben Cheng [Fri, 14 Sep 2012 21:45:34 +0000 (14:45 -0700)]
Print warnings when backwards timestamps are detected.

Bug: 7100774

Change-Id: I752fd1680b32ce33d17d6042d6c82e27d7ba9dd2

11 years agoNew test
Andy McFadden [Sat, 15 Sep 2012 00:21:46 +0000 (17:21 -0700)]
New test

Added a test to confirm that the transform hint is being respected.

Bug: 7162482
Change-Id: I892fe962f8cf2759ff951b4f5065b9ac2732c3d1

11 years agoFix transform hints
Andy McFadden [Fri, 14 Sep 2012 23:10:11 +0000 (16:10 -0700)]
Fix transform hints

The hints were being set a little too late, so the pre-rotation stuff
wasn't quite working.

Bug 7054997

Change-Id: Id8d5c626db7a76f768ba762a145b315878ee08e6

11 years agoFix display projections when translated.
Jeff Brown [Fri, 14 Sep 2012 02:22:41 +0000 (19:22 -0700)]
Fix display projections when translated.

There are two different translations to apply in the logical
orientation, one before scaling and one after.
So translate, scale, translate then rotate.

Bug: 7139798
Change-Id: I0726991cadb62988390e77503dbbaed54f07bfe3

11 years agoMinor tweaks
Andy McFadden [Wed, 12 Sep 2012 23:59:59 +0000 (16:59 -0700)]
Minor tweaks

A couple of minor cleanups I stumbled over while looking at other
things.

Change-Id: I385ecfe1afefd577afbc59d7ef1d98d868073651

11 years agoMerge "Initialize new HWC 1.2 fields" into jb-mr1-dev
Jesse Hall [Thu, 13 Sep 2012 03:18:53 +0000 (20:18 -0700)]
Merge "Initialize new HWC 1.2 fields" into jb-mr1-dev

11 years agoMerge "Fix display projection transforms" into jb-mr1-dev
Jesse Hall [Thu, 13 Sep 2012 03:16:28 +0000 (20:16 -0700)]
Merge "Fix display projection transforms" into jb-mr1-dev

11 years agoMerge "don't call hwc with non-empty layer lists for blanked displays" into jb-mr1-dev
Mathias Agopian [Thu, 13 Sep 2012 02:10:03 +0000 (19:10 -0700)]
Merge "don't call hwc with non-empty layer lists for blanked displays" into jb-mr1-dev

11 years agoRegion::validate() cannot be called from addRectUnchecked()
Mathias Agopian [Thu, 13 Sep 2012 00:56:29 +0000 (17:56 -0700)]
Region::validate() cannot be called from addRectUnchecked()

addRectUnchecked() is allowed to be in an invalid state
temporarily.

Change-Id: I6f5162b5c49f378978c070a77abba35023fe918c

11 years agoMerge "strengthen region validation" into jb-mr1-dev
Mathias Agopian [Thu, 13 Sep 2012 00:49:28 +0000 (17:49 -0700)]
Merge "strengthen region validation" into jb-mr1-dev

11 years agodon't call hwc with non-empty layer lists for blanked displays
Mathias Agopian [Wed, 12 Sep 2012 22:34:57 +0000 (15:34 -0700)]
don't call hwc with non-empty layer lists for blanked displays

we now make sure to take the blanked state of a display into
account when we build its list of visible layers, this ensures
that we won't call prepare/set with a non-empty list when the
display is blanked.

Possibly fixes 7075380710355371301877016215

Bug: 7075380
Change-Id: I9fdd2e73d1b7621eaeca3d4ac2ae60d9fb1b3631

11 years agostrengthen region validation
Mathias Agopian [Wed, 12 Sep 2012 01:56:23 +0000 (18:56 -0700)]
strengthen region validation

Change-Id: I75ee7bc4dd7a2f5357ac8994a23bc8b8bfb6eb44

11 years agoMerge "EGL: make max cache key size BoardConfig-able" into jb-mr1-dev
Jamie Gennis [Wed, 12 Sep 2012 22:54:39 +0000 (15:54 -0700)]
Merge "EGL: make max cache key size BoardConfig-able" into jb-mr1-dev

11 years agoInitialize new HWC 1.2 fields
Jesse Hall [Fri, 7 Sep 2012 18:20:56 +0000 (11:20 -0700)]
Initialize new HWC 1.2 fields

Also rename resolution* to width/height.

Change-Id: Ia5f0c50d3f0a349160f314a3257c3b985e13ef1d

11 years agoFix display projection transforms
Jesse Hall [Wed, 12 Sep 2012 20:49:10 +0000 (13:49 -0700)]
Fix display projection transforms

Bug: 7139798
Change-Id: I61aafe99180d85563c6880d16bc367fce80e6022

11 years agoMerge "Fix emulator" into jb-mr1-dev
Andy McFadden [Wed, 12 Sep 2012 20:27:00 +0000 (13:27 -0700)]
Merge "Fix emulator" into jb-mr1-dev

11 years agoMerge "Watch for SurfaceFlinger death" into jb-mr1-dev
Andy McFadden [Wed, 12 Sep 2012 20:22:35 +0000 (13:22 -0700)]
Merge "Watch for SurfaceFlinger death" into jb-mr1-dev

11 years agoFix emulator
Andy McFadden [Wed, 12 Sep 2012 20:14:51 +0000 (13:14 -0700)]
Fix emulator

Emulator has no HWC.

Change-Id: I7810b27034f6772823142e5bf877681db1c8ee49

11 years agoEGL: make max cache key size BoardConfig-able
Jamie Gennis [Wed, 12 Sep 2012 18:55:16 +0000 (11:55 -0700)]
EGL: make max cache key size BoardConfig-able

This change makes the maximum EGL blob cache key size configurable via a
BoardConfig.

Change-Id: Ic669cd25fc743662bd4f13aab62354fc3d54560c

11 years agoMerge "SurfaceTexture: eglDestroySync after duping its fd" into jb-mr1-dev
Jamie Gennis [Wed, 12 Sep 2012 18:54:52 +0000 (11:54 -0700)]
Merge "SurfaceTexture: eglDestroySync after duping its fd" into jb-mr1-dev

11 years agoMerge "fix typo in LayerBase::dump()" into jb-mr1-dev
Mathias Agopian [Wed, 12 Sep 2012 03:53:20 +0000 (20:53 -0700)]
Merge "fix typo in LayerBase::dump()" into jb-mr1-dev

11 years agofix typo in LayerBase::dump()
Mathias Agopian [Wed, 12 Sep 2012 03:52:46 +0000 (20:52 -0700)]
fix typo in LayerBase::dump()

Change-Id: Ie4861a58baed003b7ef643931d41f6be3fbfd00c

11 years agoReduce failure uncertainty
Andy McFadden [Tue, 11 Sep 2012 22:15:13 +0000 (15:15 -0700)]
Reduce failure uncertainty

This adds a trivial workaround for a one-shot boot time crash, plus
an explicit check and abort for a failure condition that currently
presents as a less obvious failure.

Bug: 71455217147557
Change-Id: I548f6a9caa9f0bd5710aaecea0e1c6c7c8f2f281

11 years agoReshuffle FramebufferSurface
Andy McFadden [Mon, 10 Sep 2012 21:08:09 +0000 (14:08 -0700)]
Reshuffle FramebufferSurface

FramebufferSurface no longer speaks directly to the FB HAL.  Now
everything goes through HWComposer (which may or may not be
connected to a hardware composer).

Added display index arg to some query methods.

Change-Id: Id3e157d2d4e3555d33afbb703e518b6e92e2d6d5

11 years agoAdd stack dump from drmserver process to bugreports
James Dong [Mon, 10 Sep 2012 23:08:48 +0000 (16:08 -0700)]
Add stack dump from drmserver process to bugreports

This would be helpful tracking down ANR issues in drmserver

o related-to-bug: 7132419

Change-Id: I7eceaa0c29af26bd0092110be6bddf8f4c063545

11 years agoSurfaceTexture: eglDestroySync after duping its fd
Jamie Gennis [Mon, 10 Sep 2012 21:49:42 +0000 (14:49 -0700)]
SurfaceTexture: eglDestroySync after duping its fd

This change adds a call to eglDestroySync after we've dup'd the fd for the
Android fence that the EGLSyncKHR object wraps.

Change-Id: I4fa6ece863260793630d70bb9a69d6284d05d99e

11 years agoSurfaceTexture: use eglWaitSync
Jamie Gennis [Mon, 10 Sep 2012 00:48:42 +0000 (17:48 -0700)]
SurfaceTexture: use eglWaitSync

This change adds a compile-option to use eglWaitSyncANDROID to ensure that
texturing operations that access the current buffer of a SurfaceTexture do not
occur until the buffer is completely written.  It also moves this
synchronization into a new SurfaceTexture method called doGLFenceWait and
changes SurfaceFlinger's Layer class to use that method rather than performing
its own wait on the fence.

Change-Id: I70afa88086ca7ff49a80e3cd03d423767db7cb88

11 years agoEGL: Add the EGL_ANDROID_wait_sync extension
Jamie Gennis [Mon, 10 Sep 2012 00:46:17 +0000 (17:46 -0700)]
EGL: Add the EGL_ANDROID_wait_sync extension

Change-Id: Ie9a78e07fcaf27c5c13797141ad3c692217607fb

11 years agoMerge "SurfaceTexture: use EGL-created native fences" into jb-mr1-dev
Jamie Gennis [Sun, 9 Sep 2012 20:00:16 +0000 (13:00 -0700)]
Merge "SurfaceTexture: use EGL-created native fences" into jb-mr1-dev

11 years agoSurfaceTexture: use EGL-created native fences
Jamie Gennis [Thu, 6 Sep 2012 21:54:19 +0000 (14:54 -0700)]
SurfaceTexture: use EGL-created native fences

This change adds support for using Android fences that come from EGLSyncKHR
objects as the release fence for a buffer.

Change-Id: Ice192ce2ec001020f909a2018afdf0f17b24dec9

11 years agoEnsure that viewport and frame are initialized.
Jeff Brown [Sun, 9 Sep 2012 07:07:17 +0000 (00:07 -0700)]
Ensure that viewport and frame are initialized.

onInitializeDisplays() was posting a transaction with changes
to the display projection.  Unfortunately, it only set the
display orientation field and left viewport and frame
uninitialized.

The uninitialized values flowed downstream and found themselves
baked into a bogus DisplayDevice mGlobalTransform.  That transform
was then applied to some Rects which were turned into Regions
that were them combined with other Regions.

Under certain situations, the uninitialized data might have
a largish value, resulting in the creation of Regions with
components in excess of the Region max-value limit of 0x7ffffff
(note that this is not INT_MAX).  Later when performing a
binary operation using the Region, the Spanner would loop
indefinitely trying to figure out how to stuff a humongous
region inside of a max-value region.  Not content to try
just once, the Spanner would continue trying again and
again, pegging the CPU and hanging surface flinger during boot.

Insanity soon followed.

Bug: 7130713
Change-Id: I0016f0c9662185be833474c212a1dd408096ae23

11 years agoFix display projection.
Jeff Brown [Fri, 7 Sep 2012 19:55:10 +0000 (12:55 -0700)]
Fix display projection.

Change-Id: I0f253dc3759b99e05ff8344b0f513d8c289702e7

11 years agoWatch for SurfaceFlinger death
Andy McFadden [Fri, 7 Sep 2012 01:45:56 +0000 (18:45 -0700)]
Watch for SurfaceFlinger death

The ComposerService object wasn't watching for SurfaceFlinger
restarts, which doesn't usually matter because the app framework
restarts when SurfaceFlinger dies.  However, mediaserver continues
to run, which means its ComposerService object was trying to use
a dead handle, and playback of DRM movies was failing.

This adds a DeathRecipient listener and some logic to re-establish
the SurfaceFlinger connection.

Bug 6645813

Change-Id: I07581b881d3835601aa57d5358c8259d93bc4515

11 years agolibgui: move fence handling into ConsumerBase
Jamie Gennis [Thu, 6 Sep 2012 03:09:05 +0000 (20:09 -0700)]
libgui: move fence handling into ConsumerBase

This change moves some common fence handling code into the base class for
BufferQueue consumer classes.  It also makes the ConsumerBase class initialize
a buffer slot's fence with the acquire fence every time a buffer is acquired.

Change-Id: I0bd88bc269e919653b659bfb3ebfb04dd61692a0

11 years agoEGL: add the native_fence_sync extension
Jamie Gennis [Thu, 6 Sep 2012 21:52:00 +0000 (14:52 -0700)]
EGL: add the native_fence_sync extension

This change adds support for the EGL_ANDROID_native_fence_sync extension to the
Android EGL layer.  It also fixes a couple minor issues with the extension spec.

Change-Id: Ic8829d21f37b701f33aa9c72c3d25e88e03fa3cd

11 years agoEGL_ANDROID_native_fence_sync: fix the version
Jamie Gennis [Thu, 6 Sep 2012 02:45:44 +0000 (19:45 -0700)]
EGL_ANDROID_native_fence_sync: fix the version

Change-Id: Ib43b8fec8f37bb847d7bcdbf7607fd56f19a0563

11 years agofix a problem where all hwc layers would have the SKIP flags set
Mathias Agopian [Wed, 5 Sep 2012 23:00:56 +0000 (16:00 -0700)]
fix a problem where  all hwc layers would have the SKIP flags set

the problem was that LayerBase::setPerFrameData() was always setting
this flag. in fact there was no reason to do this at that point since
the layer is initialized to a default state in setGeometry().

Bug: 7111259
Change-Id: Ib37b0dd7391a6163070e9aca025512159c1705f9

11 years agoMerge "Always reset layer acquireFenceFd after commit" into jb-mr1-dev
Jesse Hall [Wed, 5 Sep 2012 20:54:52 +0000 (13:54 -0700)]
Merge "Always reset layer acquireFenceFd after commit" into jb-mr1-dev

11 years agoMerge "EGL_ANDROID_fence_sync: make it more generic" into jb-mr1-dev
Jamie Gennis [Wed, 5 Sep 2012 20:48:50 +0000 (13:48 -0700)]
Merge "EGL_ANDROID_fence_sync: make it more generic" into jb-mr1-dev

11 years agoAlways reset layer acquireFenceFd after commit
Jesse Hall [Wed, 5 Sep 2012 20:03:10 +0000 (13:03 -0700)]
Always reset layer acquireFenceFd after commit

If SurfaceFlinger needs to refresh the screen but the dirty region is
empty, it won't set the layer acquire fences, and stale file
descriptors will be passed to HWC commit(). Now we make sure to clear
the stale file descriptors for each layer right after commit().

Bug: 7078301
Change-Id: I6953ff91fc5488f105b30b07306f9c45a4c3f780

11 years agominor cleanup
Mathias Agopian [Wed, 5 Sep 2012 04:04:09 +0000 (21:04 -0700)]
minor cleanup

Change-Id: Ied80e14878e92a506930f7a5a55adde8f260ec70

11 years agoMerge "display projection API now has a single function instead of 3" into jb-mr1-dev
Mathias Agopian [Wed, 5 Sep 2012 03:27:48 +0000 (20:27 -0700)]
Merge "display projection API now has a single function instead of 3" into jb-mr1-dev

11 years agothe visibleRegion was never set in hwcomposer
Mathias Agopian [Wed, 5 Sep 2012 03:25:39 +0000 (20:25 -0700)]
the visibleRegion was never set in hwcomposer

Bug: 7089478
Change-Id: I13b031b23ce908d33f431a04e1cf87831b551260

11 years agoEGL_ANDROID_fence_sync: make it more generic
Jamie Gennis [Wed, 5 Sep 2012 02:49:51 +0000 (19:49 -0700)]
EGL_ANDROID_fence_sync: make it more generic

This change updates the extension spec to refer to generic "native fence sync
objects" rather than "Android fence sync objects."

Change-Id: I15a79f08571586431845b54c58c8420b652f40ef

11 years agodisplay projection API now has a single function instead of 3
Mathias Agopian [Wed, 5 Sep 2012 02:30:46 +0000 (19:30 -0700)]
display projection API now has a single function instead of 3

Change-Id: I9bf46d372b77d547486d4bbe6f1953ec8c65e98f

11 years agoimplement display viewport and frame
Mathias Agopian [Tue, 4 Sep 2012 22:05:38 +0000 (15:05 -0700)]
implement display viewport and frame

note: viewport clipping is not implemented yet

Change-Id: I7fde7c4de075d409d95c48bb20ba8ee017f6f00a

11 years agoMerge "BufferQueue: add a setMaxAcquiredBufferCount check" into jb-mr1-dev
Jamie Gennis [Tue, 4 Sep 2012 21:58:50 +0000 (14:58 -0700)]
Merge "BufferQueue: add a setMaxAcquiredBufferCount check" into jb-mr1-dev

11 years agoMerge "libgui: add BufferQueue test infrastructure" into jb-mr1-dev
Jamie Gennis [Tue, 4 Sep 2012 21:55:58 +0000 (14:55 -0700)]
Merge "libgui: add BufferQueue test infrastructure" into jb-mr1-dev

11 years agoMerge "libgui: disable CpuConsumer tests" into jb-mr1-dev
Jamie Gennis [Tue, 4 Sep 2012 21:55:37 +0000 (14:55 -0700)]
Merge "libgui: disable CpuConsumer tests" into jb-mr1-dev

11 years agoMerge "Add support for "-rtl" in resources" into jb-mr1-dev
Fabrice Di Meglio [Tue, 4 Sep 2012 21:55:02 +0000 (14:55 -0700)]
Merge "Add support for "-rtl" in resources" into jb-mr1-dev

11 years agoBufferQueue: add a setMaxAcquiredBufferCount check
Jamie Gennis [Fri, 31 Aug 2012 01:36:22 +0000 (18:36 -0700)]
BufferQueue: add a setMaxAcquiredBufferCount check

This change adds a check to verify the validity of the value passed to
setMaxAcquiredBufferCount.

Change-Id: I39730557aa58261e678bd6e4fce11bab78e98362

11 years agoMerge "Add timeout when waiting for HW vsync" into jb-mr1-dev
Andy McFadden [Tue, 4 Sep 2012 16:38:39 +0000 (09:38 -0700)]
Merge "Add timeout when waiting for HW vsync" into jb-mr1-dev

11 years agoadd libsurfaceflinger_ddmconnection for PDK build
Keun young Park [Fri, 31 Aug 2012 17:53:36 +0000 (10:53 -0700)]
add libsurfaceflinger_ddmconnection for PDK build

- the library is dlopened from libsurfaceflinger
- the library built only when libnativehelper exists

Bug: 7089510
Change-Id: Ib3ea1029d7e8f6e055f4b759d0bf68f5123fa8a1

11 years agothe visible region sent to HWC was garbage
Mathias Agopian [Sat, 1 Sep 2012 00:51:25 +0000 (17:51 -0700)]
the visible region sent to HWC was garbage

we used to have a visibleRegion object per layer, but now
it's per screen; so at somepoint the code got changed to
calculate the per-screen visible region on the stack and that's
what got passed to HWC.

we're now setting the visibleRegionScreen at each frame and
freeing at after the HWC set() call. We use the underlaying
SharedBuffer so that in most cases we don't have to allocate,
free or copy memory around.

Bug: 7089478
Change-Id: I24fa556c76613a225d9fe7a6c6b727bb476144d8

11 years agominor SharedBuffer clean-up
Mathias Agopian [Fri, 31 Aug 2012 23:20:23 +0000 (16:20 -0700)]
minor SharedBuffer clean-up

Change-Id: If38b7ce85806ae628c00f2c938de4e3f75142543

11 years agoAdd a way to retrieve a Region as a SharedBuffer
Mathias Agopian [Fri, 31 Aug 2012 22:41:24 +0000 (15:41 -0700)]
Add a way to retrieve a Region as a SharedBuffer

Change-Id: Ia53cb905fbc88f899521658545f990fb9217b1e1

11 years agochange how we store Region data internally
Mathias Agopian [Fri, 31 Aug 2012 21:31:40 +0000 (14:31 -0700)]
change how we store Region data internally

We used to keep the bounds of the region as a
separate rectangle. Instead we now store it as the last
element of the Vector<> of Rects.

This has the benefit of being slightly more efficient when
copying regions and reduces the overhead of small regions,
but more importantly will allow us to export the underlaying
SharedBuffer (eventually).

Change-Id: I80790e4fb1a09a747a5616000cfef852ac4ce9e9