2713c30843816d3511b39b85a2c268a2b7682047 |
|
29-Mar-2018 |
Dan Stoza <stoza@google.com> |
Early wake-up for transitions (1/2) On some devices it's very likely that we fall into GL comp during app transitions. However, SF offsets are chosen in a way such that the time to finish a frame is just too tight to be completely jank free when hitting GL composition in SurfaceFlinger. Thus, we introduce the concept of a separate early offset, and wakeup SurfaceFlinger at that time if we think that hitting GL comp is likely, or we already hit GL comp in the last frame. Test: Open app, check vsync offsets in systrace Test: Open many dialogs/apps to fall into GPU comp. Bug: 75985430 Change-Id: Ie17e30c4575359fa11bb8912f68dcafe3e569ddb Merged-In: Ie17e30c4575359fa11bb8912f68dcafe3e569ddb
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
fd997e0969100418b4df8b8d97d21d497afa76c3 |
|
29-Mar-2018 |
Peiyong Lin <lpy@google.com> |
Add proper namespace to GraphicTypes. Renamed GraphicsTypes.h to GraphicTypes.h and added proper namespace to avoid naming conflict. BUG: 77156734 Test: Build and flash Change-Id: Ibd9f454b5b72d5f8c6d94a3869a60a1bf821f106 Merged-In: Ibd9f454b5b72d5f8c6d94a3869a60a1bf821f106
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
ccd348460ca25890a8fb709e82e6f780e3ce878e |
|
14-Mar-2018 |
rongliu <rongliu@google.com> |
Pass correct window type and app id to hw composer. 1. Set -1 as default value for window type and app id. 2. When send layer information to hal, layers inherit type and app id from parent node when parent node has valid type/appId. 3. Add window type and app id to SurfaceFlinger dumpsys. Bug: 74622357 Test: Manual test. Several things verified: 1. Android settings layer, status bar layer, nav bar layer have valid window type and appId when start android settings. 2. Layers without buffer have window type -1 and app id -1. 3. When send layers to hal, Chrome SurfaceView layer inherit type and app id from its parent (MainActivity layer). Change-Id: I8d6ad274ca18b61d1bbf6b28f7def5160b55b1e7 Merged-In: I8d6ad274ca18b61d1bbf6b28f7def5160b55b1e7
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
a912b6ec28f758d061c907cee2a4b817690336d7 |
|
21-Mar-2018 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Propagate error codes from createSurface" into pi-dev
|
a52f0295622a42849f5ef81c44589b816b2ccacb |
|
15-Mar-2018 |
Peiyong Lin <lpy@google.com> |
[Native] Replace android_color_mode usage with ColorMode. To ease the pain when we add color mode v1.1, we replace all current android_color_mode usage in framework native with ColorMode directly from HAL. BUG: 73824924 Test: Build & flash Change-Id: I4436fc225c7807506825c7148bc794cb99f278dc
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
3b382ed2e8a6a79698fb8e65913946bba109d836 |
|
14-Mar-2018 |
Robert Carr <racarr@google.com> |
Propagate error codes from createSurface Without an error code it's impossible to distinguish OOM from missing parent, causing the WM to start killing applications in the case of a missing parent. Bug: 73664284 Test: Manual. Change-Id: Ida6a30b41d1e856dfa9dceb80a432a30353d2764
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
578038fc49f83c4c8c4accdce49df404ecd6ad02 |
|
09-Mar-2018 |
Robert Carr <racarr@google.com> |
SurfaceFlinger: Add childLayersOnly variant of capture layers. Currently captureLayers is being used to capture children of abstract buffer-less layers, for example we capture the node representing a Task. Because of animations, etc, the node may have been scaled when we want to take the screenshot, so we solved this problem with an inverse transform in LayerRenderArea. However we have parallel problems for crop, visibility, etc...It seems what we really want from captureLayers is the ability to capture all child layers while ignoring the parent imposed state as if in a parallel hierarchy. I initially considered implementing a parallel hierarchy with layer clones but it seemed much less risky for P to instead reparent the existing hierarchy to a parallel abstract parent on the server side. Bug: 72760590 Test: Existing tests pass. Quickstep works with new implementation. New transaction tests. Change-Id: Ifd2b2f9ed45351d8ed0d7f09be1cd9806ec4abe8
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
8e3fe5d6a78d92e0bcbd90ca98cf7b3f9de7512d |
|
22-Feb-2018 |
chaviw <chaviw@google.com> |
Store SurfaceControl reference when creating transactions The SurfaceControl needs to be stored when adding a new transaction. This ensures the ref count is incremented so the SC isn't removed before the transaction is applied. Change-Id: I27a060e4c221c5dfa565ceb3a916574105fd1175 Fixes: 73448047 Test: DereferenceSurfaceControlTest
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
763ef57459aa9f10f3587581b119fe8d4ece3cd3 |
|
23-Feb-2018 |
chaviw <chaviw@google.com> |
Rename getLayerState and getDisplayState functions. Both getLayerStateLocked and getDisplayStateLocked are named incorrectly since they do not require a lock to be held when called. Rename to avoid confusion. Test: Builds and runs Change-Id: Ia0a98fc4c1994ecc131c783fea478e3e7075044d
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
ca27f2500cff74ae1e08b3ae06f18e9b3414ffb7 |
|
07-Feb-2018 |
chaviw <chaviw@google.com> |
Allow destroySurface to get called in transaction. Previously, destroy was always initiated immediatley and could not be synchronized with a client transaction. This change allows destroySurface to be called in the same transaction as other client state updates. Test: Unit tests pass Test: Call from Java fixes bugs. Change-Id: I841359530538961a0187216cc455cc388c0ede77 Fixes: 72953020 Fixes: 71499373
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
1eaa10357344343b91d242a7ea774cc23beeab74 |
|
05-Dec-2017 |
Jorim Jaggi <jjaggi@google.com> |
Merge "Make SurfaceControl parcelable (2/2)"
|
f3cf4bcfa2c558f03e178f7044d3cb12fa0e73ed |
|
30-Nov-2017 |
Jorim Jaggi <jjaggi@google.com> |
Make SurfaceControl parcelable (2/2) Bug: 69145041 Test: Send SurfaceControl over binder Change-Id: I47aa4a4bb39fab3ed4d1d30d4e472de7cbc5ca38
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
40482ff650751819d4104c10a30974838168438c |
|
30-Nov-2017 |
Chavi Weingarten <chaviw@google.com> |
Revert "Revert "Use GraphicBuffer instead of GBP for screenshots."" This reverts commit 707b8f3507fa4a3915844c7a4730e67f94eee2f7. Reason for revert: Ready to test out changes with SystemUI update Change-Id: I9fd0cb7ad9cc68d2366fc5ec4ab087fbe4c21f3b
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
707b8f3507fa4a3915844c7a4730e67f94eee2f7 |
|
29-Nov-2017 |
Chavi Weingarten <chaviw@google.com> |
Revert "Use GraphicBuffer instead of GBP for screenshots." This reverts commit a252d895816b3aa6c3bc2b2083113694ead6963d. Reason for revert: SystemUI and some other places need to be updated as well. Will resubmit with the other necessary changes Change-Id: I2dfb7b439c866f31ffa584e450d3208c75afecaa Bug: 69898957
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
a252d895816b3aa6c3bc2b2083113694ead6963d |
|
21-Nov-2017 |
chaviw <chaviw@google.com> |
Use GraphicBuffer instead of GBP for screenshots. Migrate screenshot code to render the layers into a GraphicBuffer instead of creating a GraphicBufferProducer. This cleans up the code and makes rendering a screen capture simpler and clearer. Test: Screencaptures for Recents, manual screenshots, and "adb shell screencap" Test: Transaction_test Change-Id: Ifb463c0e98cfaa3f96ad27837b1a2e2921e253d1
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
7206d49b2963ce2e926a5f25fe94aca9c06471e6 |
|
11-Nov-2017 |
chaviw <chaviw@google.com> |
Add additional parameters for the captureLayer functions. 1. Added new captureLayers function that will return a GraphicBuffer instead of storing into a Surface. 2. Added crop to captureLayers function. 3. Added frameScale to allow captures to scale. 4. Removed rotation parameter from captureLayers since it will always be in the correct orientation. Test: Transaction_test ScreenCaptureTest.CaptureCrop, .CaptureSize Change-Id: Ib16d8575cf0c103126b9427ad32e2d28d568ea61
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
2c5f6d2257075c8b5ced78b07ed8b2c2323f0df2 |
|
26-Sep-2017 |
Robert Carr <racarr@google.com> |
SurfaceFlinger: Implement merging of transaction objects. Useful for WindowManager to collect multiple transactions from independent units. Test: Transaction_test.cpp Change-Id: I52e89b038e3b375493169991e41cb75b67550264
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
a76b271f0e14325fa0ebb98e1cac0a15adfea1cb |
|
20-Sep-2017 |
chaviw <chaviw@google.com> |
Add captureLayers function to capture a layer and its children. The captureLayers function gets a root layer as its argument. It will capture the content for that layer and its descendants. The capture will set the root layer's transform back to (0, 0). Test: Transaction_test ScreenCaptureTest Change-Id: I84fb66a65cd91434cddc99506b1924cf9f950935
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
4cdc58f6840d15b4952149d2b345ec1f97d505bc |
|
23-Aug-2017 |
Robert Carr <racarr@google.com> |
SurfaceFlinger Transactions as distinct objects. Essentially a process global singleton for transactions is not so useful once we make surface control public API as process isn't something an app developer is really thinking about. It's also nice that we get to delete two of the plumbing layers. Test: Boots Change-Id: I8864bd7e2f5865e3c0a425cf82f9928211911774
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
13fdc49516d17f41e64e62e73c313b0928bf13cc |
|
27-Jun-2017 |
chaviw <chaviw@google.com> |
Added native functionality to create a color layer. Added a new layer that can draw a specified color and specified alpha. This will replace creating a dim layer and allow any colors, not just black, to be set for this layer. Test: Added tests to Transaction_test.cpp to test with a color and a color layer with alpha. Change-Id: I00a38d1bbc01093026f088c3347454281bdc2b8c
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
f1961f713de2b3f54c8ce7653964b969e1a02bc8 |
|
19-Sep-2017 |
chaviw <chaviw@google.com> |
Re-parent invoked on child instead of on parent. The function to re-parent an individual child is now invoked on the child instead of the parent. This ensures the child ends up with the last parent set if multiple reparent requests are made in the same transaction. This also allows adding a parent to a layer that didn't have one previously. Test: Transaction_test -> Reparent, ReparentToNoParent, ReparentFromNoParent Change-Id: Idab429eb2dca5a4ae1b020a5a7629d719dd4d995
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
0617894190ea0c3ee50889bee1d4df0f369b0761 |
|
27-Jul-2017 |
chaviw <chaviw@google.com> |
Add a re-parent function to re-parent a specific child. This is similar to reparentChildren, but the reparentChild will only re-parent a specific child to the new parent and not all children. Test: Added test in Transaction_test for reparentChild. Change-Id: I4275e0d5f1d5601b489956753c78a56d1a5d4c1c
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|
172bd727181da158c40100795cff279b9721559d |
|
20-Jun-2017 |
Jiyong Park <jiyong@google.com> |
Make libgui available to vendors libgui is now available to vendors, especially for BufferQueue in between the OMX and Camera HALs for encoding the captured video stream. In doing so, its headers were moved from frameworks/native/include to its local directory frameworks/native/libs/gui/include. This is required because global include path is not supported when building for vendor. However, in order not to affect platform modules that are still relying on the global include path, symlinks are provided. frameworks/native/include/gui -> frameworks/native/libs/include/gui frameworks/native/include/private/gui -> frameworks/native/libs/include/private/gui Bug: 37731063 Test: BOARD_VNDK_VERSION=current m -j libgui.vendor Change-Id: I0bab8d2e31959085ad58b1ce4c610334ee3da033
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
|