diff options
| author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-03-23 10:10:28 +0000 |
|---|---|---|
| committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-03-23 10:10:28 +0000 |
| commit | c3e6bd2fb2223973f26325d11c28b32b8685cfbd (patch) | |
| tree | da46aa45ad59a45a9fbbc5ea8610cb3878411436 /services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp | |
| parent | fa715fbb081b1c548160bbf9b3b483f2e532960c (diff) | |
| parent | 169d2b5244b662e05dee2595acaef912fa553c38 (diff) | |
Snap for 8343869 from 169d2b5244b662e05dee2595acaef912fa553c38 to s-keystone-qcom-release
Change-Id: I3a2a1c3b8551e1c6af02b7c5426bffa4d5835511
Diffstat (limited to 'services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp')
| -rw-r--r-- | services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp b/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp index ee73cfc0c1..09f5a5e51d 100644 --- a/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp @@ -3606,6 +3606,7 @@ struct OutputComposeSurfacesTest_SetsExpensiveRendering_ForBlur : public OutputComposeSurfacesTest_SetsExpensiveRendering { OutputComposeSurfacesTest_SetsExpensiveRendering_ForBlur() { mLayer.layerFEState.backgroundBlurRadius = 10; + mLayer.layerFEState.isOpaque = false; mOutput.editState().isEnabled = true; EXPECT_CALL(mLayer.outputLayer, updateCompositionState(false, true, ui::Transform::ROT_0)); @@ -4225,6 +4226,37 @@ TEST_F(GenerateClientCompositionRequestsTest_ThreeLayers, kDisplayDataspace)); } +TEST_F(OutputUpdateAndWriteCompositionStateTest, noBackgroundBlurWhenOpaque) { + InjectedLayer layer1; + InjectedLayer layer2; + + uint32_t z = 0; + // Layer requesting blur, or below, should request client composition, unless opaque. + EXPECT_CALL(*layer1.outputLayer, updateCompositionState(false, false, ui::Transform::ROT_0)); + EXPECT_CALL(*layer1.outputLayer, + writeStateToHWC(/*includeGeometry*/ false, /*skipLayer*/ false, z++, + /*zIsOverridden*/ false, /*isPeekingThrough*/ false)); + EXPECT_CALL(*layer2.outputLayer, updateCompositionState(false, false, ui::Transform::ROT_0)); + EXPECT_CALL(*layer2.outputLayer, + writeStateToHWC(/*includeGeometry*/ false, /*skipLayer*/ false, z++, + /*zIsOverridden*/ false, /*isPeekingThrough*/ false)); + + layer2.layerFEState.backgroundBlurRadius = 10; + layer2.layerFEState.isOpaque = true; + + injectOutputLayer(layer1); + injectOutputLayer(layer2); + + mOutput->editState().isEnabled = true; + + CompositionRefreshArgs args; + args.updatingGeometryThisFrame = false; + args.devOptForceClientComposition = false; + mOutput->updateCompositionState(args); + mOutput->planComposition(); + mOutput->writeCompositionState(args); +} + TEST_F(OutputUpdateAndWriteCompositionStateTest, handlesBackgroundBlurRequests) { InjectedLayer layer1; InjectedLayer layer2; @@ -4246,6 +4278,7 @@ TEST_F(OutputUpdateAndWriteCompositionStateTest, handlesBackgroundBlurRequests) /*zIsOverridden*/ false, /*isPeekingThrough*/ false)); layer2.layerFEState.backgroundBlurRadius = 10; + layer2.layerFEState.isOpaque = false; injectOutputLayer(layer1); injectOutputLayer(layer2); @@ -4283,6 +4316,7 @@ TEST_F(OutputUpdateAndWriteCompositionStateTest, handlesBlurRegionRequests) { BlurRegion region; layer2.layerFEState.blurRegions.push_back(region); + layer2.layerFEState.isOpaque = false; injectOutputLayer(layer1); injectOutputLayer(layer2); |
