Commit Graph

66 Commits

Author SHA1 Message Date
Romain Guy
3b996c96e4 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
954fdd27ca fix a bug where timeouts would only be handled when a message was delivered
Change-Id: Id3127b21c1a1a1afab32911a8edbb202360d7c9b
2010-10-07 19:59:06 -07:00
Mathias Agopian
58959343db Fix a null dereference
Change-Id: I3df446b90c1607782778749de7ba0f8c00698c33
2010-10-07 14:57:04 -07:00
Mathias Agopian
74c40c0a27 refactored screenshot code
the core screenshot function now can capture the screen at any lower resolution
performing bilinear filtering.

we also now have some client code to interface with the screenshot service.

it's now possible to request a screenshot at a lower resolution.

Change-Id: I5a3b0e431421800e3aad601d9af8f94adffbc71f
2010-09-29 16:55:15 -07:00
Mathias Agopian
a3aefeb1c3 am 495ad4f2: am beabe75a: Merge changes I1f7c4535,I741c68a2 into gingerbread
Merge commit '495ad4f22096aa172d025c16c25497e7dad8f2bd'

* commit '495ad4f22096aa172d025c16c25497e7dad8f2bd':
  simple test app for screen capture API
  add support for [1974164] Be able to take a screen shot on the device
2010-09-24 18:13:22 -07:00
Mathias Agopian
c814f965de am beabe75a: Merge changes I1f7c4535,I741c68a2 into gingerbread
Merge commit 'beabe75a842d521b005999460d3a6361ab32108e' into gingerbread-plus-aosp

* commit 'beabe75a842d521b005999460d3a6361ab32108e':
  simple test app for screen capture API
  add support for [1974164] Be able to take a screen shot on the device
2010-09-24 18:07:41 -07:00
Mathias Agopian
06e7056660 simple test app for screen capture API
Change-Id: I1f7c453508ccfd4faaa8b1279968a358ce3f1e5a
2010-09-24 15:01:49 -07:00
Mathias Agopian
1b0b30d043 add support for [1974164] Be able to take a screen shot on the device
screenshots are taken using ISurfaceComposer::captureScreen() which returns
the size of the screenshot and an IMemoryHeap containing the data.
screenshots have limitations:
- they will always fail if a secure window is up on screen
- require GL_OES_framebuffer_object extension
- in some situation, video planes won't been captured

Change-Id: I741c68a2d2984fb139039301c3349e6780e2cd58
2010-09-24 14:56:39 -07:00
Mathias Agopian
8372785879 dump HWC state in dumpsys
Change-Id: Ifbb38ca1ac9685776250e01c8d02021b35af72cf
2010-09-23 18:13:21 -07:00
Mathias Agopian
73d3ba9e50 add a way to toggle the h/w composer at runtime
to DISABLE the h/w composer:
  adb shell service call SurfaceFlinger 1008 i32 1

to ENABLE the h/w composer:
  adb shell service call SurfaceFlinger 1008 i32 0

the state is dumped in "dumpsys SurfaceFlinger"

Change-Id: I23e2242d42c6e3fd5261a83332dd900b189e38ce
2010-09-22 18:58:01 -07:00
Mathias Agopian
e44d21a247 fix [3018216] UI shrinks / stretches while using apps with IME
Change-Id: Ie4c5d8a434b4489355ed8c52af96eb931b4d7167
2010-09-21 10:52:42 -07:00
Jamie Gennis
9c2de1a4b5 Merge "Fix a SurfaceFlinger bug." 2010-09-17 14:07:13 -07:00
Jamie Gennis
5dda7f7cf2 Fix a SurfaceFlinger bug.
The bug caused SurfaceFlinger to constantly trigger reallocation of buffers
that requested a fixed size.

Change-Id: Ic993a60e6474e36a344c8b48d541a0d08b8c4faf
2010-09-17 12:19:07 -07:00
Mathias Agopian
fe0a0af7bd am 793b2293: am 1bcb8b1a: Merge "surfaceflinger / GL extensions cleanup" into gingerbread
Merge commit '793b2293797ea930078640c4827d3cbdf449c227'

* commit '793b2293797ea930078640c4827d3cbdf449c227':
  surfaceflinger / GL extensions cleanup
2010-09-16 18:26:19 -07:00
Mathias Agopian
c05246ae34 am 1bcb8b1a: Merge "surfaceflinger / GL extensions cleanup" into gingerbread
Merge commit '1bcb8b1afbfa2fc387a0f7068740f1efbe9a1f69' into gingerbread-plus-aosp

* commit '1bcb8b1afbfa2fc387a0f7068740f1efbe9a1f69':
  surfaceflinger / GL extensions cleanup
2010-09-16 17:57:34 -07:00
Michael I. Gold
7f198b6bff surfaceflinger / GL extensions cleanup
Add correct enumerants for OES_EGL_image_external to glext.h.
SurfaceFlinger now checks for the correct extension name.

Change-Id: I2ba2728a01fa2260bd086d2df4316c68f694a9b1
2010-09-15 17:15:31 -07:00
Mathias Agopian
c479e18db0 resolved conflicts for merge of 48a86240 to master
Change-Id: I2305fef9f4dd46183337217d822df3c675b6b6e5
2010-09-15 12:29:18 -07:00
Mathias Agopian
5e4cf02dfe am b3ffc78f: Merge "Add logging of various important graphics events" into gingerbread
Merge commit 'b3ffc78f3432344702e6f5232067ab624083cad2' into gingerbread-plus-aosp

* commit 'b3ffc78f3432344702e6f5232067ab624083cad2':
  Add logging of various important graphics events
2010-09-14 15:14:10 -07:00
Mathias Agopian
35b48d10bc Add logging of various important graphics events
There are 16 events logged in the event log:
SF_APP_DEQUEUE_BEFORE
SF_APP_DEQUEUE_AFTER
SF_APP_LOCK_BEFORE
SF_APP_LOCK_AFTER
SF_APP_QUEUE

SF_REPAINT
SF_COMPOSITION_COMPLETE
SF_UNLOCK_CLIENTS
SF_SWAP_BUFFERS
SF_REPAINT_DONE

SF_FB_POST_BEFORE
SF_FB_POST_AFTER
SF_FB_DEQUEUE_BEFORE
SF_FB_DEQUEUE_AFTER
SF_FB_LOCK_BEFORE
SF_FB_LOCK_AFTER

all events log the buffer conserned and a timestamp in microseconds.

by default the logging is not enabled, to turn it on:
adb shell service call SurfaceFlinger 1006 i31 1
adb shell setprop debug.graphic_log 1

The effect is immediate in SurfaceFlinger, but applications need to be
restarted.

Change-Id: Ifc2e31f7aed072d9a7dede20ff2ce59231edbec1
2010-09-13 23:16:58 -07:00
Antti Hatala
f5f2712854 surfaceflinger: give hwcomposer a chance to release buffers
Change-Id: I605fa779702022865dd58df3b36f37c2644ade36
2010-09-09 12:06:48 -07:00
Antti Hatala
586a0deb76 surfaceflinger: composite HWC_SKIP_LAYER layers
Change-Id: I363ede63287ae903d66d0d419343f4ecd81bcc00
2010-09-09 12:06:31 -07:00
Antti Hatala
8392b504bd surfaceflinger: unlock clients only after flip
Change-Id: I039291a36f05bbaa02b29325d4012114abd784b9
2010-09-09 12:06:18 -07:00
Mathias Agopian
413f750501 am 6d4346ce: am 4cffbb47: Merge "fix [2946787] Screen flicker on low resolution setting in camcorder." into gingerbread
Merge commit '6d4346ce35a521d67f45d7c9658c450c0fc461d2'

* commit '6d4346ce35a521d67f45d7c9658c450c0fc461d2':
  fix [2946787] Screen flicker on low resolution setting in camcorder.
2010-08-25 16:40:28 -07:00
Mathias Agopian
9cca403ed0 am 4cffbb47: Merge "fix [2946787] Screen flicker on low resolution setting in camcorder." into gingerbread
Merge commit '4cffbb47a28faa594c2217d1e84f9382e0b57cc4' into gingerbread-plus-aosp

* commit '4cffbb47a28faa594c2217d1e84f9382e0b57cc4':
  fix [2946787] Screen flicker on low resolution setting in camcorder.
2010-08-25 15:40:44 -07:00
Mathias Agopian
eff062c49e fix [2946787] Screen flicker on low resolution setting in camcorder.
Change-Id: I7e86f2b6d85dcae8dd212890b978fa6ac7de6893
2010-08-25 15:09:52 -07:00
Mathias Agopian
e34a3d1a29 am 46820412: am 8eb16af2: Merge "don\'t try to lock a buffer that wasn\'t allocated with SW usage bits" into gingerbread
Merge commit '468204124e95bbf74ae8cc000318ade29e311be6'

* commit '468204124e95bbf74ae8cc000318ade29e311be6':
  don't try to lock a buffer that wasn't allocated with SW usage bits
2010-08-25 12:24:02 -07:00
Mathias Agopian
2091772e7c am 8eb16af2: Merge "don\'t try to lock a buffer that wasn\'t allocated with SW usage bits" into gingerbread
Merge commit '8eb16af29303cda190133a1d220b9ecd9341e261' into gingerbread-plus-aosp

* commit '8eb16af29303cda190133a1d220b9ecd9341e261':
  don't try to lock a buffer that wasn't allocated with SW usage bits
2010-08-25 12:17:19 -07:00
Mathias Agopian
f1b38247d4 don't try to lock a buffer that wasn't allocated with SW usage bits
Change-Id: Iabbcec1bfa30dc47d45ece699dd178653f1b675b
2010-08-25 12:14:27 -07:00
Mathias Agopian
4ad298c12c am bc4389ed: am 8395b462: Merge "fix [2931513] Add support for setting the orientation of an ANativeWindow" into gingerbread
Merge commit 'bc4389edfbb5777aec1a9af7863b2ca3ade2fa64'

* commit 'bc4389edfbb5777aec1a9af7863b2ca3ade2fa64':
  fix [2931513] Add support for setting the orientation of an ANativeWindow
2010-08-24 17:56:40 -07:00
Mathias Agopian
95acdcc7de am 8395b462: Merge "fix [2931513] Add support for setting the orientation of an ANativeWindow" into gingerbread
Merge commit '8395b4625b96f2133e2e4f595fdc69fbe222e4fc' into gingerbread-plus-aosp

* commit '8395b4625b96f2133e2e4f595fdc69fbe222e4fc':
  fix [2931513] Add support for setting the orientation of an ANativeWindow
2010-08-24 16:28:57 -07:00
Mathias Agopian
b661d66013 fix [2931513] Add support for setting the orientation of an ANativeWindow
Also implement support for cropping.

Change-Id: Iba5888dd242bf2feaac9e9ce26e404c1f404c280
2010-08-24 15:40:50 -07:00
Jamie Gennis
89c2dd2cc2 Change the framework to use the new camera preview path.
This change makes the camera HAL interface take an ANativeWindow interface from
which all the camera preview buffers will be allocated.  The framework code
running in application processes now passes a Surface object rather than an
ISurface to the camera server via Binder when setting the preview surface.  The
camera server then forwards that Surface object (which implements the
ANativeWindow interface) to the camera HAL, which uses it to communicate with
SurfaceFlinger to allocate the camera preview buffers.

Change-Id: Ie438f721559cd7de5e4f848a26d96360dda07b5f
2010-08-23 14:31:30 -07:00
Andreas Huber
3f45e44adf Merge "Squashed commit of the following:" 2010-08-23 12:31:59 -07:00
Andreas Huber
8b42e8a5d8 Squashed commit of the following:
commit 35cc68814a9537c31fde146e171e7b0bbdfe211e
Author: Andreas Huber <andih@google.com>
Date:   Mon Aug 16 08:48:42 2010 -0700

    Only enable support for yuv to yuv conversion on passion, where it's available, use the slower yuv->rgb565 path everywhere else.

commit d8ac5a8814103e60d11d2acf61997fc31a1dc58d
Author: Andreas Huber <andih@google.com>
Date:   Fri Aug 13 13:56:44 2010 -0700

    The software renderer takes over all rendering, converting from yuv to yuv if possible and rgb565 otherwise.

commit 684972074b74318bdcb826ed9b5b0864d2d2e273
Author: Andreas Huber <andih@google.com>
Date:   Fri Aug 13 09:34:35 2010 -0700

    A first shot at supporting the new rendering APIs.

Change-Id: Iea9b32856da46950501f1a700f616b5feac710fd
2010-08-23 12:30:24 -07:00
Mathias Agopian
f84f146159 am a90a1e55: am 545eab8a: Merge "remove unused pixel format" into gingerbread
Merge commit 'a90a1e55c60604b930eecff03fe25429205ec7df'

* commit 'a90a1e55c60604b930eecff03fe25429205ec7df':
  remove unused pixel format
2010-08-21 09:43:24 -07:00
Mathias Agopian
8258339e47 am 545eab8a: Merge "remove unused pixel format" into gingerbread
Merge commit '545eab8ae80b070177cc442931eadc8cd980de26' into gingerbread-plus-aosp

* commit '545eab8ae80b070177cc442931eadc8cd980de26':
  remove unused pixel format
2010-08-19 13:39:56 -07:00
Mathias Agopian
c04cffd570 remove unused pixel format
Change-Id: I55bc3cc41385743c07f7e4de06335c922f746f73
2010-08-19 13:11:42 -07:00
Mathias Agopian
1339581c92 am 26bcc7b4: Merge "revert hwcomposer HAL changes. DO NOT MERGE." into gingerbread
Merge commit '26bcc7b44238ea54105ef5a6020fa5c37bb33f03' into gingerbread-plus-aosp

* commit '26bcc7b44238ea54105ef5a6020fa5c37bb33f03':
  revert hwcomposer HAL changes. DO NOT MERGE.
2010-08-18 13:57:15 -07:00
Mathias Agopian
000ca8fa9a revert hwcomposer HAL changes. DO NOT MERGE.
This reverts commit:
94364b91a2894bf037b8beb027132fbb812e1434
f8e705dea48f77f1c2532fdbadd4997dd1851af0
b59beb5ca68d0228f60dda60d85e2d0226b33215
e0d5f5bcf5a8b26f4ad75f549cbf380b2c9faf20
2010-08-17 20:22:04 -07:00
Mathias Agopian
3c7a766c66 am 6a73368b: Merge "fix a typo that prevented glTexImage2D codepath to work" into gingerbread
Merge commit '6a73368be44f45a80cc4b65dc57b9ff529cb2d89' into gingerbread-plus-aosp

* commit '6a73368be44f45a80cc4b65dc57b9ff529cb2d89':
  fix a typo that prevented glTexImage2D codepath to work
2010-08-13 16:32:43 -07:00
Mathias Agopian
998831fbc3 Merge "fix a typo that prevented glTexImage2D codepath to work" into gingerbread 2010-08-13 16:29:48 -07:00
Mathias Agopian
f1c468e481 fix a typo that prevented glTexImage2D codepath to work
Change-Id: I36a3bf9d1d2eacd9b14e00b0a6c53bf88bba381c
2010-08-13 16:25:13 -07:00
Erik Gilling
38af31e3e2 am 94364b91: surfaceflinger: don\'t check HWComposer numLayers unless one exists
Merge commit '94364b91a2894bf037b8beb027132fbb812e1434' into gingerbread-plus-aosp

* commit '94364b91a2894bf037b8beb027132fbb812e1434':
  surfaceflinger: don't check HWComposer numLayers unless one exists
2010-08-13 10:13:39 -07:00
Erik Gilling
ae95765868 surfaceflinger: don't check HWComposer numLayers unless one exists
Change-Id: I4b83f7bf7ba1318c70054117f14e759fe0ad105c
2010-08-13 10:10:48 -07:00
Mathias Agopian
5e9615eaff am b7d1be01: Merge "Fix a couple issues with the new hwcomposer HAL" into gingerbread
Merge commit 'b7d1be01ae44428b947823fc48c1c126dcaa9732' into gingerbread-plus-aosp

* commit 'b7d1be01ae44428b947823fc48c1c126dcaa9732':
  Fix a couple issues with the new hwcomposer HAL
2010-08-12 15:09:30 -07:00
Mathias Agopian
45721773e1 Fix a couple issues with the new hwcomposer HAL
- we now clear the framebuffer upon request from the HAL
- the HAL list size could get out of sync with reality
- there was also an issue where sometime we could run past the list

Change-Id: Ic3a34314aed24181f2d8cc787096af83c046ef27
2010-08-12 15:03:26 -07:00
Mathias Agopian
ea6dbaf302 am 65f2490e: Merge "should fix sim build, hopefully" into gingerbread
Merge commit '65f2490e1baa6eac5905cbc638e69581ebcd8dee' into gingerbread-plus-aosp

* commit '65f2490e1baa6eac5905cbc638e69581ebcd8dee':
  should fix sim build, hopefully
2010-08-11 17:35:58 -07:00
Mathias Agopian
f1352df47f should fix sim build, hopefully
Change-Id: I5390bd34dcca36fef43b5169386fff1b04cc842b
2010-08-11 17:31:33 -07:00
Mathias Agopian
8ea0bbd9b0 am 90dc48b1: Merge "call into hwcomposer HAL when present" into gingerbread
Merge commit '90dc48b17f673b7e334e3254ea633450f994226c' into gingerbread-plus-aosp

* commit '90dc48b17f673b7e334e3254ea633450f994226c':
  call into hwcomposer HAL when present
2010-08-11 16:28:21 -07:00
Mathias Agopian
127fbb7943 am 24d7050c: Merge "don\'t handle the transparent region of a layer in draw()" into gingerbread
Merge commit '24d7050ca605804efd5fde03f0d0d8d1d052c247' into gingerbread-plus-aosp

* commit '24d7050ca605804efd5fde03f0d0d8d1d052c247':
  don't handle the transparent region of a layer in draw()
2010-08-11 16:26:05 -07:00