41b08b5e97b04d726fb8bbacddbce563a1c890f9 |
|
02-Jun-2017 |
Robert Carr <racarr@google.com> |
SurfaceFlinger: Fix final cropping of child layers. Straightforward mistake documented by the test case. Not sure how it made it this long. Test: Included in Transaction_test.cpp. Manual from bug. go/wm-smoke. Bug: 37511473 Change-Id: I87a57825cca879c5519fe72fef199168f7c23479
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
7bf247e2db180da661b18084d50e0b389686fc0c |
|
18-May-2017 |
Robert Carr <racarr@google.com> |
SurfaceFlinger: setGeometryAppliesWithResize crop latching fixes. The same sort of thing we had with setPosition...not sure why I didn't realize we would need the fixes here too! In particular we need to ensure the following scenarios work: 1. Additional calls to set(Final)Crop while in the setGeometryAppliesWithResize state are eventually applied. 2. Additional calls to set(Final)Crop while in the setGeometryAppliesWithResize state are not immediately applied. 3. In LayerRejector.cpp we have to be sure we are not just latching a buffer at the old size, which we still allow. This is the correct time to latch the transparentRegion as it is content dependent, but doesn't represent a size changing. The difference between this and the original CL which was reverted has to do with point 3. The original CL tried to solve point 3 by moving the latching logic from the LayerRejecter in to Layer::doTransaction. However, in general doTransaction will not be called in between Latching the buffer and drawing the frame, so this introduced errors. The new test "FinalCropLatchingBufferOldSize" encapsulates this. Bug: 37621737 Bug: 37531386 Test: Included in Transaction_test.cpp Change-Id: I14bd09d01ac6b85895caa1b707d6fa7dac962074
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
a3ed032256c475ce13c52b0261da6a5e2ffa77be |
|
16-May-2017 |
Rob Carr <racarr@google.com> |
Revert "SurfaceFlinger: setGeometryAppliesWithResize crop latching fixes." This reverts commit 1e079c2804edfae77925150280fe79418e58750b. Bug: 38331032 Change-Id: Ib703b7b80a940550487a80d8ad62947e4becae93
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
1e079c2804edfae77925150280fe79418e58750b |
|
09-May-2017 |
Robert Carr <racarr@google.com> |
SurfaceFlinger: setGeometryAppliesWithResize crop latching fixes. The same sort of thing we had with setPosition...not sure why I didn't realize we would need the fixes here too! In particular we need to ensure the following scenarios work: 1. Additional calls to set(Final)Crop while in the setGeometryAppliesWithResize state are eventually applied. 2. Additional calls to set(Final)Crop while in the setGeometryAppliesWithResize state are not immediately applied. 3. When we latch the buffer completing the resize...current hasn't been swapped to drawing...which means our location in LayerRejector.cpp was the wrong place to update the crop. This raises questions about whether the Transparent region latching works. Bug: 37531386 Test: Included in Transaction_test. Change-Id: I5140d44fd5e591a4afe5bddc201db45f7bcb5674
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
412903fce3a93f411c85c54375a1851bfb370400 |
|
27-Apr-2017 |
Dan Stoza <stoza@google.com> |
SurfaceFlinger: Select which layer state to visit Modifies the traverseIn[Reverse]ZOrder methods to also take an enum value specifying whether to traverse the current state or the drawing state. This has the effect of fixing a bug where we weren't performing transactions on a child layer because its parent was only visiting its drawing layers (rather than its current layers) and was thus skipping the child, which had not yet been moved from current to drawing. Bug: 36858924 Test: ChildLayerTest.Bug36858924 doesn't hang Change-Id: I1959f40bc07e77864ba024511d429592a398a67a
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
1725eeeb7db8a2c933dcc9d01cce14e17c76c6e6 |
|
27-Apr-2017 |
Robert Carr <racarr@google.com> |
SurfaceFlinger: Correct extra parent scaling with buffer transforms. We need to account for the buffer transform when calculating the extra parent scaling. Bug: 37673612 Test: Regression test included in Transaction_test Change-Id: Ice21f1ecf3789358646d95c753ee361f50c0d246
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
9b429f41cbd5964f96f9fb746af3b6932e4acc66 |
|
17-Apr-2017 |
Robert Carr <racarr@google.com> |
SurfaceFlinger: Inherit non-transform Scaling from parent. When a Layer is fixed-size, we may apply additional scaling to the buffer not accounted for in the transform. This means that if the WindowManager calls setSize we will scale the parent surface but not the child surfaces, breaking the contract that the WM can treat the child surfaces as pixels in the parent. Test: Included test in Transaction_test. Bug: 36820947 Bug: 37344435 Change-Id: I5478bad176388fe8e5407379bc36cdfd6600ab97
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
db66e627ad8904491e384c64f82fc77a939b9705 |
|
11-Apr-2017 |
Robert Carr <racarr@google.com> |
SurfaceFlinger: Add parent-less relative layering. This is a temporary functionality for the intermediate state where not all child-surface like things in WM land are ported to use Child Surfaces. In particular, we have ported SurfaceView to use child surfaces and relative Z ordering. However the TV frameworks provide a View framework component which overlays views over the SurfaceView but below the main application window. Since we have not ported View framework surfaces to use child layers, there is nothing the WM or View Framework can do about this situation. Luckily the WM API's to have requested this are @hide but we have the one media framework component using it. In order to solve this issue we provide a method to set Z ordering relative to another window without inheriting its coordinate space as a child window would. This way the WM can recognize these TYPE_APPLICATION_MEDIA_OVERLAY windows and Z-order them at -1 with respect to the parents (and the SurfaceView can be at -2). Test: Included in transaction tests. Also manual test of bug repro steps with accomp frameworks/base CL Bug: 36693738 Change-Id: I921852d3d34f67f79ec745b9703f9e679867e7a1
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
6452f12c95e855a96ab8f690f28914cd37de762b |
|
21-Mar-2017 |
Robert Carr <racarr@google.com> |
SurfaceFlinger: Inherit Alpha for child surfaces. Necessary for various animations to work correctly and for the general goal of treating child surfaces like pixels in the parent surface. Test: Includes new test in SurfaceFlinger_test Bug: None yet ;) Change-Id: Ic8309518bd327bbba6ad2f79f265e24cf37898e7
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
8d5227b8416b099c884429312daf2d60496fa484 |
|
16-Mar-2017 |
Robert Carr <racarr@google.com> |
Include finalCrop in setGeometryAppliesWithResize. A refresher on this archaic function. Normally window crop and position apply immediately. This is so the window manager can always crop surfaces (e.g. while docked resizing) even if the app is lagging behind. In some cases though the apps position or cropping may depend on whether the resize has occured or not. For example when an app gains shadows, we need to move expand the Surface and move it by a negative offset for the content to remain in the same place. This movement needs to be synchronized with the buffer latching for the expansion. We implemented setGeometryAppliesWithResize to take care of this. At the time it wasn't clear if it was needed for finalCrop so we let it be. Now that we are exclusively using final crop in the pinned stack however it is required. The same way we have an issue with position and shadows, we have an issue with expanding the crop rect (we may have actually been cropping out part of a larger surface that is now supposed to be shadows). Also includes a test suite for setGeometryAppliesWithResize behavior which was previously untested. Bug: 35396882 Test: SurfaceFlinger_test Change-Id: Ie4d32162eb21154496bb231161692d18341a1e1e
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
77c073bdbe1b24a332056e1194a6162b7717a848 |
|
01-Mar-2017 |
Rob Carr <racarr@google.com> |
Merge changes from topic 'surfaceview-without-wm' * changes: Add detachChildren transaction. Add deferTransaction variant taking GraphicBufferProducer.
|
3b14c2ac6af21b4d37788001908796fc0a1748d8 |
|
01-Mar-2017 |
Rob Carr <racarr@google.com> |
Merge "SurfaceFlinger: Trivial Transaction_test refactoring."
|
6961b6bc1f6f172745deee98e7dcb34a3668e4e6 |
|
01-Mar-2017 |
Mathias Agopian <mathias@google.com> |
Remove unneeded references to IMemory Test: compiled & run Bug: cleanup Change-Id: Ifef6695275f244a420df574b3bc49adb99c93fbf
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
9524cb3b37a91b5741790c77ff24fd825b02bca7 |
|
13-Feb-2017 |
Robert Carr <racarr@google.com> |
Add detachChildren transaction. Add SurfaceControl#detachChildren for use by the WindowManager. This method is used in cases where the WM would previously preserve windows the client tried to destroy. For example, when becoming invisible (in the activity lifecycle sense, not in the SurfaceFlinger sense) an app will destroy its child surfaces. Previously the WM would keep child windows alive until the animation finishes to prevent glitches. The new scheme for this is the WM will detach the children at this point, at which point the parent layer becomes the owner of the children and the WM can control the lifecycle as it wishes. I also included a test for reparentChildren as I realized I had forgotten that. Test: New test in Transaction_test.cpp Change-Id: I79c22b2ccccceb9bdcc37b70c491bdf33dcf83d2
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
2b91c826ac5fc1d0f9370d02fd8c2373e5ca85d3 |
|
22-Feb-2017 |
Robert Carr <racarr@google.com> |
SurfaceFlinger: Trivial Transaction_test refactoring. Make consistent use of the assertBG/FG color helpers introduced in a past CL. Test: Existing test passes. Change-Id: Ic793c195e9ff8a99a3b6fbcfc9995b522c252c9a
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
1f0a16a5d7cd00ba7fda82e7d315afa1fd1303b9 |
|
25-Oct-2016 |
Robert Carr <racarr@google.com> |
SurfaceFlinger and libgui: Support for child layers. Add support for parenting Layers in a tree. Layers follow scene-graph style rules, that is to say: 1. A child is cropped to the final bounds of the parent. 2. A child inherits the parent's transform (including position) 3. A child's Z ordering is relative to the parent and bounded between the parents siblings. 4. A childs lifetime is bounded by it's parents lifetime. Test: New tests in Transaction_test plus manual testing with later branches. Change-Id: I96f8ad863665b9a70b6f845561344c297b7e6eff
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
426ab7b1b42ad0f67b9eccd4e068973fc6266ff7 |
|
30-Jul-2016 |
Mukul Sati <msati@google.com> |
Remove unused variable Remove an unused local variable in surfaceflinger tests Change-Id: I30bc41094bb3487bc1d90586eda8d1a87ccae35a
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
15311bd8a5e8a8b74e7abe6314c764e02491a12d |
|
02-Jun-2016 |
Pablo Ceballos <pceballos@google.com> |
Push empty sync transaction before taking screenshot in tests Because of ag/1043009 it's now necessary to push an empty sync transaction before taking a screenshot to ensure that all transactions have been applied. Bug 29074285 Change-Id: I9f1b4a5b6b1f39e1ff26d536817aef6f40865177
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
05289c2b78d21308a95ea6ef8f1d8f24359147cd |
|
15-Apr-2016 |
Pablo Ceballos <pceballos@google.com> |
SF: Don't pop pending state into mCurrentState Let mCurrentState always represent the most up to date state, even if there are transactions we don't want to commit yet. Past snapshots of the state are kept in mPendingState. In doTransaction(), grab the correct pending state from mPendingState, but save it to a local copy that gets committed rather than overriding mCurrentState. Bug 27205755 Change-Id: Ib0ea809da1954409787c52b8f41d7963a57a6a4c
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
acbe67888f0bd65d5400400f0115bae6bd6199dc |
|
04-Mar-2016 |
Pablo Ceballos <pceballos@google.com> |
Add final crop implementation Bug 26559810 Change-Id: Idaccd13cd625c92d18665ddecebdbb266ea365f3
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
5e4fcbe411f0a941d604d8a9974a02faa3fda170 |
|
02-Sep-2015 |
Pablo Ceballos <pceballos@google.com> |
SF: Improve surface flinger unit tests - Fix compiler warnings - Make checkPixel print out the actual/expected values on failure - Add unit tests for setLayerStack, setFlags, and setMatrix - Make the tests work when the display is off Change-Id: I53ac1279b967fe06ff8cdb10d3ee4c0e2349b2d0
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
d575096d797628d7b39417fef23b78ca6e035d1a |
|
28-Jul-2015 |
Haixia Shi <hshi@google.com> |
Add more SF tests to Transaction_test TEST=verify all tests pass on hammerhead-eng BUG=none Change-Id: Idb4df0996ac4ebbef3784ee86bd43c584d62cf1f
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
5a16a62950de06d48769e29f0c68a154ed7a7a89 |
|
21-May-2015 |
Michael Lentine <mlentine@google.com> |
Fix surfaceflinger tests. Update the screenshot code and add correct return values to surface flinger's capturescreenshot function. Buf: 18138368 Change-Id: Ieb42d289088589f941502fbd69da7aa939265e07
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
e3c697fb929c856b59fa56a8e05a2a7eba187c3d |
|
15-Feb-2013 |
Mathias Agopian <mathias@google.com> |
Refactoring: Rename SurfaceTextureClient to Surface Change-Id: Ibed34175ae273608393aaa5f0a7df207dc40d709
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
9d4e3d2f42e93e2d12bacabe97d307d30c3c20dd |
|
25-Aug-2012 |
Jeff Brown <jeffbrown@google.com> |
Banish DisplayID from the SurfaceFlinger API. Use only display tokens in the API to refer to new displays. Don't require the caller to specify the display when creating a surface (since in general a surface could be shown on any display). This is intended to be a minimum change just to update the API. Note that SurfaceFlinger still uses DisplayID in a few places internally that might cause some features not to work properly when there are multiple displays (LayerScreenshot, for example). Change-Id: I3d91eec2da406eefd97bcd53655d403ad865a7e6
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
c666cae2d5995097ec49a87e375e2afdd92802b7 |
|
26-Jul-2012 |
Mathias Agopian <mathias@google.com> |
get rid of the shared-memory control block Change-Id: If814060aca1d2ff2619d4adcd57296983d207f7f
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
90ac799241f077a7b7e6c1875fd933864c8dd2a7 |
|
26-Feb-2012 |
Mathias Agopian <mathias@google.com> |
fix libgui header location Change-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
9d4536835248525f32f1504a3d28d5bbfa0a2910 |
|
20-Dec-2011 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|
23c2c5d1c6aaeaeb1804b7aa9b667e7e58c941bb |
|
12-Oct-2011 |
Jamie Gennis <jgennis@google.com> |
SurfaceFlinger: add some layer update tests This change adds two tests for SurfaceFlinger's behavior when updating the position and size of a layer. Change-Id: Id5e3ca1d7e629a3bd2c2d28275d80c7f9256d6da
/frameworks/native/services/surfaceflinger/tests/Transaction_test.cpp
|