217 Commits

Author SHA1 Message Date
Mathias Agopian
ee5a3aca57 [317580] fix issue where the screen wouldn't be rotated properly in bypass mode
In some situations, the screen transformation would not be
applied while in bypass mode.

Change-Id: I3d6dd52e4c12b11aae97b54bf8e2322536eee37f
2010-12-07 21:16:14 -08:00
Mathias Agopian
f30c828752 am 48f42f8c: am 4153bf3a: Merge "[3171580] don\'t automatically log GraphicBuffer allocation failures" into gingerbread
* commit '48f42f8c3fbd33b2f46c6290ff5963dd58938cf9':
  [3171580] don't automatically log GraphicBuffer allocation failures
2010-12-07 17:24:03 -08:00
Mathias Agopian
4e345ab7df am a2977c38: Merge changes Ie03796ae,Ide3e980a into gingerbread
* commit 'a2977c383d363e1e88a5b36230b1fa4c312807d2':
  [3171580] SurfaceFlinger Bypass mode. (DO NOT MERGE)
  [3171580] Add transform field to native buffers. (DO NOT MERGE)
2010-12-07 14:22:56 -08:00
Mathias Agopian
a0f011ff49 am 05813b0e: Merge changes I244b5469,I32044e91 into gingerbread
* commit '05813b0eb92cb1bc79607ee402f14ca1e4b43f6d':
  [3253328, 3171580] Treat GONE and INVISIBLE views the same when calculating transparent regions
  [3171580] Fix two typos related to fixed-size buffers
2010-12-07 14:20:14 -08:00
Mathias Agopian
48f42f8c3f am 4153bf3a: Merge "[3171580] don\'t automatically log GraphicBuffer allocation failures" into gingerbread
* commit '4153bf3a259624a2f2dc497b77b225a1fb517abc':
  [3171580] don't automatically log GraphicBuffer allocation failures
2010-12-07 14:20:09 -08:00
Mathias Agopian
025005f562 [3171580] SurfaceFlinger Bypass mode. (DO NOT MERGE)
This is a poor's man precursor to the h/w composer HAL.
Basically we detect when a window is full screen and in
that case we bypass surfaceflinger's composition step, which
yields to much improved performance.

Change-Id: Ie03796ae81a1c951949b771c9323044b980cb347
2010-12-03 17:35:07 -08:00
Mathias Agopian
1989af22b5 [3171580] Fix two typos related to fixed-size buffers
mFixedSize was never set, this bug was introduced during some "cleanup", in
practice this could cause some issues when a fixed-size buffer was used and
the window was resized.

Layer::drawForSreenShot() had a typo that had no effect.

mFixedSize was used to determine if filtering was needed, which was a bit too
conservative and created a dependency between filtering and "fixed size" states
which should exist.

Now we enable filtering based on the size of the buffer vs. the size of the layer.

Change-Id: I32044e91b0c944c1b137efdceb3f01dfaa78119d
2010-12-03 17:35:06 -08:00
Mathias Agopian
e869aee382 [3171580] don't automatically log GraphicBuffer allocation failures
some of these failures are not fatal and even expected in some cases
so they should not emit a dump in the log in those cases.

Change-Id: Idcfa252e3bfa9d74e27fe4ad8f8623aa01aa9c5e
2010-12-03 17:33:09 -08:00
Louis Huemiller
2dd198b9f8 Remove const_cast to layer handle
Change-Id: Ica1e089cb56b5f9f46ab87abf735ffe7237fc926
2010-12-01 12:29:36 -08:00
Jamie Gennis
7ab17a3426 Merge "Implement reducing the buffer count of a Surface." 2010-11-11 15:26:21 -08:00
Jamie Gennis
6c925d00e1 Implement reducing the buffer count of a Surface.
Change-Id: I7f979c60c06d654aa8265002836277434bc1a64f
Bug: 3095167
2010-11-11 14:06:38 -08:00
Jamie Gennis
d267d2a2f1 Remove a problematic empty update optimization.
This change removes an optimization from SurfaceFlinger that skipped
composition when it got window updates that had an empty dirty region.
This optimization caused problems because it would skip the hwcomposer
set call, which could leave the window's previous frame buffer bound to
an overlay plane.  When the application subsequently dequeued and tried
to lock its next buffer (which would be the buffer currently bound to
the overlay), the lock call would block until the next hwcomposer set
call (which may never happen).

Change-Id: I563b626a1d52c1f30eb82489eae0ceb4edc79936
Bug: 3138752
2010-11-10 15:09:09 -08:00
Mathias Agopian
267e91688b am 5c0efef9: am 7d452f69: Merge "really fix [3118445] Transform * Transform does not work as expected" into gingerbread 2010-10-27 23:48:26 -07:00
Mathias Agopian
5c0efef9a1 am 7d452f69: Merge "really fix [3118445] Transform * Transform does not work as expected" into gingerbread 2010-10-27 23:46:25 -07:00
Mathias Agopian
e031ba8d20 really fix [3118445] Transform * Transform does not work as expected
Two bugs were counter acting each other.
- rotation matrices are on the left-hand side of multiplies
- the transform of the overlay is applied before that of the layer

Change-Id: Ia79bd368e9b719235c89ecf244ea263f01ce906a
2010-10-27 18:04:11 -07:00
Mathias Agopian
a24a519883 am e1ca532d: am 457bed2b: Merge "fix [3123221] Video sticks playing back upside down following orientation switch" into gingerbread
Merge commit 'e1ca532d72cbfacdce794f8bb4d439e609ec9871'

* commit 'e1ca532d72cbfacdce794f8bb4d439e609ec9871':
  fix [3123221] Video sticks playing back upside down following orientation switch
2010-10-25 13:53:33 -07:00
Mathias Agopian
affca7e481 am b4645353: am ce4d36ad: Merge "fix [3118445] Transform * Transform does not work as expected" into gingerbread
Merge commit 'b4645353090f1bdd5cc1d4ab98feac7ccf966368'

* commit 'b4645353090f1bdd5cc1d4ab98feac7ccf966368':
  fix [3118445] Transform * Transform does not work as expected
2010-10-25 13:53:26 -07:00
Mathias Agopian
e1ca532d72 am 457bed2b: Merge "fix [3123221] Video sticks playing back upside down following orientation switch" into gingerbread
Merge commit '457bed2bc6561dd67429dde238453fee8602fa9b' into gingerbread-plus-aosp

* commit '457bed2bc6561dd67429dde238453fee8602fa9b':
  fix [3123221] Video sticks playing back upside down following orientation switch
2010-10-25 13:38:15 -07:00
Mathias Agopian
b464535309 am ce4d36ad: Merge "fix [3118445] Transform * Transform does not work as expected" into gingerbread
Merge commit 'ce4d36ad729f83253d4c5ec9906148f45cc00f8e' into gingerbread-plus-aosp

* commit 'ce4d36ad729f83253d4c5ec9906148f45cc00f8e':
  fix [3118445] Transform * Transform does not work as expected
2010-10-25 13:38:11 -07:00
Mathias Agopian
457bed2bc6 Merge "fix [3123221] Video sticks playing back upside down following orientation switch" into gingerbread 2010-10-25 13:31:11 -07:00
Mathias Agopian
c57b15c9c8 fix [3123221] Video sticks playing back upside down following orientation switch
the overlay wasn't reconfigured when the screen-orientation changed. It was
only done when a parameter of the surface itself changed.

Change-Id: I0ca0925bf58ded4c91ab89d12cb1fe4d1477c96c
2010-10-24 19:03:58 -07:00
Mathias Agopian
546c21dbfa fix [3118445] Transform * Transform does not work as expected
The problem wasn't in the multiply operator, but rather in the code
that built the transform from the HAL bitmask.

We now use the multiply operator to build the Transform from the bitmask,
which guarantees, it'll always be correct.

Also added a simple test for Transform.

Change-Id: I09bf3b0e51d92f59d83ea91c4cc94fc2aa0bf227
2010-10-24 14:53:05 -07:00
Mathias Agopian
ac6f0cc317 am fb31036f: am 583fefc8: Merge "Use the context_priority extension when present." into gingerbread
Merge commit 'fb31036fd844444c395a2ae9c97439eec9f774e4'

* commit 'fb31036fd844444c395a2ae9c97439eec9f774e4':
  Use the context_priority extension when present.
2010-10-21 13:48:36 -07:00
Mathias Agopian
fb31036fd8 am 583fefc8: Merge "Use the context_priority extension when present." into gingerbread
Merge commit '583fefc8dcadecc7fc933513d3569dd9c16c100c' into gingerbread-plus-aosp

* commit '583fefc8dcadecc7fc933513d3569dd9c16c100c':
  Use the context_priority extension when present.
2010-10-20 21:28:25 -07:00
Mathias Agopian
583fefc8dc Merge "Use the context_priority extension when present." into gingerbread 2010-10-20 20:04:46 -07:00
Mathias Agopian
7ece231e4a am 9f6d18ca: am 04358138: Merge "[3095807] screen takes a long time to turn on" into gingerbread
Merge commit '9f6d18cadf9ac50062063f5f5ff5de7f6895696a'

* commit '9f6d18cadf9ac50062063f5f5ff5de7f6895696a':
  [3095807] screen takes a long time to turn on
2010-10-16 08:58:35 -07:00
Mathias Agopian
596e590b47 am 7e9a54d4: am d4e03f37: addresses parts of 3096779 and 3097475
Merge commit '7e9a54d460030a871a4f05e61e943c6a694e9ef8'

* commit '7e9a54d460030a871a4f05e61e943c6a694e9ef8':
  addresses parts of 3096779 and 3097475
2010-10-16 08:52:30 -07:00
Mathias Agopian
1cf3e2d002 am a8faf91f: am 6d71f6a0: Merge "fix [3095607] Gingerbread screen turn-on animation does not show the last frame" into gingerbread
Merge commit 'a8faf91fa558be1235d508e776eb24be4429585c'

* commit 'a8faf91fa558be1235d508e776eb24be4429585c':
  fix [3095607] Gingerbread screen turn-on animation does not show the last frame
2010-10-16 08:52:12 -07:00
Mathias Agopian
3577e98ffa am 3d4a9774: am b0e020ab: Merge "may fix 3097381 and 3097482. don\'t abort on/off if the animation fails" into gingerbread
Merge commit '3d4a9774ced0c704da455c5bd9989127e90ba133'

* commit '3d4a9774ced0c704da455c5bd9989127e90ba133':
  may fix 3097381 and 3097482. don't abort on/off if the animation fails
2010-10-15 14:28:07 -07:00
Mathias Agopian
99e3fab534 am 5bfa3a34: am 011b5bcc: Merge "implement part of [3094280] New animation for screen on and screen off add support for screen on animation" into gingerbread
Merge commit '5bfa3a34eaef759c3ec4def76f646eb1c0bf997f'

* commit '5bfa3a34eaef759c3ec4def76f646eb1c0bf997f':
  implement part of [3094280] New animation for screen on and screen off
2010-10-15 08:33:43 -07:00
Mathias Agopian
9f6d18cadf am 04358138: Merge "[3095807] screen takes a long time to turn on" into gingerbread
Merge commit '043581382e43acbe29a8a62420bc765f49a9dd90' into gingerbread-plus-aosp

* commit '043581382e43acbe29a8a62420bc765f49a9dd90':
  [3095807] screen takes a long time to turn on
2010-10-14 16:51:05 -07:00
Mathias Agopian
dfa08fbfd8 [3095807] screen takes a long time to turn on
turn on animation is now ~200 ms (12 frames).

Change-Id: I49ca9e8d0afa566349d360b3b6c88f0d55aa6e75
2010-10-14 15:39:21 -07:00
Mathias Agopian
7e9a54d460 am d4e03f37: addresses parts of 3096779 and 3097475
Merge commit 'd4e03f37423bee383d17f7292753a5f67e497a28' into gingerbread-plus-aosp

* commit 'd4e03f37423bee383d17f7292753a5f67e497a28':
  addresses parts of 3096779 and 3097475
2010-10-14 15:17:16 -07:00
Mathias Agopian
a8faf91fa5 am 6d71f6a0: Merge "fix [3095607] Gingerbread screen turn-on animation does not show the last frame" into gingerbread
Merge commit '6d71f6a0ae9fd81ce25562aee67f841b5d8394cf' into gingerbread-plus-aosp

* commit '6d71f6a0ae9fd81ce25562aee67f841b5d8394cf':
  fix [3095607] Gingerbread screen turn-on animation does not show the last frame
2010-10-14 15:01:23 -07:00
Mathias Agopian
d4e03f3742 addresses parts of 3096779 and 3097475
3097475: Animation setting should control the screen on animation
3096779: CRT power-on animation can briefly show the top app instead of lockscreen

There is now a parameter that controls wether the ON and/or OFF animation are
performed. we also always clear the screen to black on power off, to make
sure it won't briefly appear on power on.
HOWEVER, 3096779 is not 100% fixed in the case where we're doing the animation
because there is a race, where SF doesn't wait (b/c it doesn't know) for the
framework to have redrawn the lockscreen.

Change-Id: Ie0f02c9225fcdf24b1e8907e268eb7da2c5b0a03
2010-10-14 14:57:34 -07:00
Mathias Agopian
3d4a9774ce am b0e020ab: Merge "may fix 3097381 and 3097482. don\'t abort on/off if the animation fails" into gingerbread
Merge commit 'b0e020ab409b725a556f2c5043b08c9bac2c29bf' into gingerbread-plus-aosp

* commit 'b0e020ab409b725a556f2c5043b08c9bac2c29bf':
  may fix 3097381 and 3097482. don't abort on/off if the animation fails
2010-10-14 13:41:28 -07:00
Mathias Agopian
8b6a0545ad fix [3095607] Gingerbread screen turn-on animation does not show the last frame
always redraw the screen entirely after the power-on animation, because:
- the animation may not run (ie: on the emu)
- the animation may not contain the video planes
- the interpolation may not be perfect and not land exactly on the last frame

Change-Id: I9ba40f537b1e94464f8a3ed6f81e7c2f552df51d
2010-10-14 12:46:24 -07:00
Mathias Agopian
a6cd6d3104 may fix 3097381 and 3097482. don't abort on/off if the animation fails
now that sf handles more of the screen on/off state, we don't want to abort
because/if the animation fails for some reason (which will be the case on the
emulator).

Change-Id: I239e0a39cf8aff3074647e82db92de4a0bf0e494
2010-10-14 12:24:54 -07:00
Joe Onorato
eb86aaaab3 am 9a12a3c8: am ba799098: Merge changes I76513387,I335fb671 into gingerbread
Merge commit '9a12a3c8d4bb20042cf69e07d268e3a04ac71f96'

* commit '9a12a3c8d4bb20042cf69e07d268e3a04ac71f96':
  Remove dead code, and make the animation a setting.
  turn off the electron beam
2010-10-13 23:34:21 -07:00
Mathias Agopian
5bfa3a34ea am 011b5bcc: Merge "implement part of [3094280] New animation for screen on and screen off add support for screen on animation" into gingerbread
Merge commit '011b5bcc0355338b7ff906656282a54ffaa04b5a' into gingerbread-plus-aosp

* commit '011b5bcc0355338b7ff906656282a54ffaa04b5a':
  implement part of [3094280] New animation for screen on and screen off
2010-10-13 15:59:42 -07:00
Mathias Agopian
2d2b803a92 implement part of [3094280] New animation for screen on and screen off
add support for screen on animation

Change-Id: If50cf52ae04b95b42da7d74cf7fa96d5cb54d238
2010-10-13 14:28:26 -07:00
Joe Onorato
9a12a3c8d4 am ba799098: Merge changes I76513387,I335fb671 into gingerbread
Merge commit 'ba799098608c7be8ff1e18adfa7dc1f452205a7e' into gingerbread-plus-aosp

* commit 'ba799098608c7be8ff1e18adfa7dc1f452205a7e':
  Remove dead code, and make the animation a setting.
  turn off the electron beam
2010-10-12 14:46:23 -07:00
Mathias Agopian
aab758e879 turn off the electron beam
Change-Id: I335fb6719f1d5a3f1c6f37a046fd1c2c4ed2bbc6
2010-10-12 14:16:11 -07:00
Mathias Agopian
ef31d7d00e am 5d477279: am cf6b2765: Merge "fix a bug where FLIP_H would do a 180 rotation" into gingerbread
Merge commit '5d477279e6e41c9d61abe66dcded5c57a51e2c78'

* commit '5d477279e6e41c9d61abe66dcded5c57a51e2c78':
  fix a bug where FLIP_H would do a 180 rotation
2010-10-12 13:57:09 -07:00
Mathias Agopian
4fc01e9aae am 3754d0cc: am d0528b74: Merge "deliver invalidate messages AFTER other messages" into gingerbread
Merge commit '3754d0ccc7ba07fd867d3d28e6493e84ce0a139d'

* commit '3754d0ccc7ba07fd867d3d28e6493e84ce0a139d':
  deliver invalidate messages AFTER other messages
2010-10-12 13:56:58 -07:00
Romain Guy
d10cd5765a Always create OpenGL accelerated windows in RGBA 8888.
Bug #3081600

The OpenGL renderer in libhwui uses a single EGL context per process and
thus create it with an RGBA 8888 EGL configuration. To ensure that all
windows are compatible with this configuration, this change modifies
the window manager and SurfaceFlinger.

The window manager now checks the window's flags and if the window is
hardware accelerated, it forces the window's pixel format to be
translucent when creating the surface. The window itself is still
marked as opaque if we know that the window will be opaque on screen.
This keeps existing optimizations in place.

Similarly in SurfaceFlinger, a translucent Surface can now be created
with the Surface.OPAQUE flag, indicating SurfaceFlinger that the surface
does not require blending, despite its RGBA 8888 configuration.

Change-Id: Ic747b6b12564ba064412d842117880fcc199eb7c
2010-10-12 11:00:18 -07:00
Mathias Agopian
cd54dc26f7 Use the context_priority extension when present.
Change-Id: I12eadf1e32d576de5d811fba44afa73263e13eef
2010-10-11 18:01:00 -07:00
Mathias Agopian
5d477279e6 am cf6b2765: Merge "fix a bug where FLIP_H would do a 180 rotation" into gingerbread
Merge commit 'cf6b2765ae7ea6305754e253264012b8f0498f7b' into gingerbread-plus-aosp

* commit 'cf6b2765ae7ea6305754e253264012b8f0498f7b':
  fix a bug where FLIP_H would do a 180 rotation
2010-10-11 14:40:02 -07:00
Mathias Agopian
cf6b2765ae Merge "fix a bug where FLIP_H would do a 180 rotation" into gingerbread 2010-10-11 14:37:57 -07:00
Mathias Agopian
5ba59975eb fix a bug where FLIP_H would do a 180 rotation
Change-Id: Ie2cc4a8543a5625750c8596f87edcb66fcbca31f
2010-10-11 14:19:24 -07:00