diff options
author | 2020-07-28 12:32:01 +0200 | |
---|---|---|
committer | 2020-07-28 14:12:21 +0200 | |
commit | 06ca163dfccb9b84d3d05524d919946db5bb1f0d (patch) | |
tree | 1d00b48fac34319ff830ee5a91d55a063b4b1ae9 | |
parent | 6db8d6e98a8e1ebd7eae5736b54423de231deaeb (diff) |
Remove sourceClip from OutputCompositionState
Remove "sourceClip" since it has the same meaning as "viewport".
Bug: 161793589
Bug: 160404780
Test: m && flash device
Test: atest libsurfaceflinger_unittest libcompositionengine_test
Change-Id: I87e252ca4d6a81b41c9525beaa797d73390509da
11 files changed, 17 insertions, 45 deletions
diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/Output.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/Output.h index baf52588e6..26299e99fd 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/Output.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/Output.h @@ -164,8 +164,8 @@ public: // Sets the projection state to use virtual void setProjection(const ui::Transform&, uint32_t orientation, const Rect& frame, - const Rect& viewport, const Rect& sourceClip, - const Rect& destinationClip, bool needsFiltering) = 0; + const Rect& viewport, const Rect& destinationClip, + bool needsFiltering) = 0; // Sets the bounds to use virtual void setBounds(const ui::Size&) = 0; diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/Output.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/Output.h index 6f25e6391b..0ac25459a7 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/Output.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/Output.h @@ -39,7 +39,7 @@ public: std::optional<DisplayId> getDisplayId() const override; void setCompositionEnabled(bool) override; void setProjection(const ui::Transform&, uint32_t orientation, const Rect& frame, - const Rect& viewport, const Rect& sourceClip, const Rect& destinationClip, + const Rect& viewport, const Rect& destinationClip, bool needsFiltering) override; void setBounds(const ui::Size&) override; void setLayerStackFilter(uint32_t layerStackId, bool isInternal) override; diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputCompositionState.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputCompositionState.h index 66ed2b6d25..7120a48887 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputCompositionState.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputCompositionState.h @@ -79,9 +79,6 @@ struct OutputCompositionState { // The logical space user viewport rectangle Rect viewport; - // The physical space source clip rectangle - Rect sourceClip; - // The physical space destination clip rectangle Rect destinationClip; diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/Output.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/Output.h index 4661c5d616..c4dff73dbb 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/Output.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/Output.h @@ -36,9 +36,8 @@ public: MOCK_CONST_METHOD0(getDisplayId, std::optional<DisplayId>()); MOCK_METHOD1(setCompositionEnabled, void(bool)); - MOCK_METHOD7(setProjection, - void(const ui::Transform&, uint32_t, const Rect&, const Rect&, const Rect&, - const Rect&, bool)); + MOCK_METHOD6(setProjection, + void(const ui::Transform&, uint32_t, const Rect&, const Rect&, const Rect&, bool)); MOCK_METHOD1(setBounds, void(const ui::Size&)); MOCK_METHOD2(setLayerStackFilter, void(uint32_t, bool)); diff --git a/services/surfaceflinger/CompositionEngine/src/Output.cpp b/services/surfaceflinger/CompositionEngine/src/Output.cpp index b07c904917..8abab518b7 100644 --- a/services/surfaceflinger/CompositionEngine/src/Output.cpp +++ b/services/surfaceflinger/CompositionEngine/src/Output.cpp @@ -106,12 +106,10 @@ void Output::setCompositionEnabled(bool enabled) { } void Output::setProjection(const ui::Transform& transform, uint32_t orientation, const Rect& frame, - const Rect& viewport, const Rect& sourceClip, - const Rect& destinationClip, bool needsFiltering) { + const Rect& viewport, const Rect& destinationClip, bool needsFiltering) { auto& outputState = editState(); outputState.transform = transform; outputState.orientation = orientation; - outputState.sourceClip = sourceClip; outputState.destinationClip = destinationClip; outputState.frame = frame; outputState.viewport = viewport; @@ -863,7 +861,7 @@ std::optional<base::unique_fd> Output::composeSurfaces( renderengine::DisplaySettings clientCompositionDisplay; clientCompositionDisplay.physicalDisplay = outputState.destinationClip; - clientCompositionDisplay.clip = outputState.sourceClip; + clientCompositionDisplay.clip = outputState.viewport; clientCompositionDisplay.orientation = outputState.orientation; clientCompositionDisplay.outputDataspace = mDisplayColorProfile->hasWideColorGamut() ? outputState.dataspace diff --git a/services/surfaceflinger/CompositionEngine/src/OutputCompositionState.cpp b/services/surfaceflinger/CompositionEngine/src/OutputCompositionState.cpp index 4835aefa8f..f3b2da1259 100644 --- a/services/surfaceflinger/CompositionEngine/src/OutputCompositionState.cpp +++ b/services/surfaceflinger/CompositionEngine/src/OutputCompositionState.cpp @@ -41,7 +41,6 @@ void OutputCompositionState::dump(std::string& out) const { dumpVal(out, "bounds", bounds); dumpVal(out, "frame", frame); dumpVal(out, "viewport", viewport); - dumpVal(out, "sourceClip", sourceClip); dumpVal(out, "destinationClip", destinationClip); dumpVal(out, "needsFiltering", needsFiltering); diff --git a/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp b/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp index 59ed72e928..2bb399cd2c 100644 --- a/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp @@ -240,18 +240,16 @@ TEST_F(OutputTest, setProjectionTriviallyWorks) { const int32_t orientation = 123; const Rect frame{1, 2, 3, 4}; const Rect viewport{5, 6, 7, 8}; - const Rect sourceClip{9, 10, 11, 12}; const Rect destinationClip{13, 14, 15, 16}; const bool needsFiltering = true; - mOutput->setProjection(transform, orientation, frame, viewport, sourceClip, destinationClip, + mOutput->setProjection(transform, orientation, frame, viewport, destinationClip, needsFiltering); EXPECT_THAT(mOutput->getState().transform, transform); EXPECT_EQ(orientation, mOutput->getState().orientation); EXPECT_EQ(frame, mOutput->getState().frame); EXPECT_EQ(viewport, mOutput->getState().viewport); - EXPECT_EQ(sourceClip, mOutput->getState().sourceClip); EXPECT_EQ(destinationClip, mOutput->getState().destinationClip); EXPECT_EQ(needsFiltering, mOutput->getState().needsFiltering); } @@ -2787,7 +2785,6 @@ struct OutputComposeSurfacesTest : public testing::Test { mOutput.mState.frame = kDefaultOutputFrame; mOutput.mState.viewport = kDefaultOutputViewport; - mOutput.mState.sourceClip = kDefaultOutputSourceClip; mOutput.mState.destinationClip = kDefaultOutputDestinationClip; mOutput.mState.transform = ui::Transform{kDefaultOutputOrientation}; mOutput.mState.orientation = kDefaultOutputOrientation; @@ -2834,7 +2831,6 @@ struct OutputComposeSurfacesTest : public testing::Test { static const Rect kDefaultOutputFrame; static const Rect kDefaultOutputViewport; - static const Rect kDefaultOutputSourceClip; static const Rect kDefaultOutputDestinationClip; static const mat4 kDefaultColorTransformMat; @@ -2856,7 +2852,6 @@ struct OutputComposeSurfacesTest : public testing::Test { const Rect OutputComposeSurfacesTest::kDefaultOutputFrame{1001, 1002, 1003, 1004}; const Rect OutputComposeSurfacesTest::kDefaultOutputViewport{1005, 1006, 1007, 1008}; -const Rect OutputComposeSurfacesTest::kDefaultOutputSourceClip{1009, 1010, 1011, 1012}; const Rect OutputComposeSurfacesTest::kDefaultOutputDestinationClip{1013, 1014, 1015, 1016}; const mat4 OutputComposeSurfacesTest::kDefaultColorTransformMat{mat4() * 0.5f}; const compositionengine::CompositionRefreshArgs OutputComposeSurfacesTest::kDefaultRefreshArgs; @@ -3122,7 +3117,7 @@ TEST_F(OutputComposeSurfacesTest_UsesExpectedDisplaySettings, forHdrMixedComposi verify().ifMixedCompositionIs(true) .andIfUsesHdr(true) .andIfSkipColorTransform(false) - .thenExpectDisplaySettingsUsed({kDefaultOutputDestinationClip, kDefaultOutputSourceClip, + .thenExpectDisplaySettingsUsed({kDefaultOutputDestinationClip, kDefaultOutputViewport, kDefaultMaxLuminance, kDefaultOutputDataspace, mat4(), Region::INVALID_REGION, kDefaultOutputOrientation}) .execute() @@ -3133,7 +3128,7 @@ TEST_F(OutputComposeSurfacesTest_UsesExpectedDisplaySettings, forNonHdrMixedComp verify().ifMixedCompositionIs(true) .andIfUsesHdr(false) .andIfSkipColorTransform(false) - .thenExpectDisplaySettingsUsed({kDefaultOutputDestinationClip, kDefaultOutputSourceClip, + .thenExpectDisplaySettingsUsed({kDefaultOutputDestinationClip, kDefaultOutputViewport, kDefaultMaxLuminance, kDefaultOutputDataspace, mat4(), Region::INVALID_REGION, kDefaultOutputOrientation}) .execute() @@ -3144,7 +3139,7 @@ TEST_F(OutputComposeSurfacesTest_UsesExpectedDisplaySettings, forHdrOnlyClientCo verify().ifMixedCompositionIs(false) .andIfUsesHdr(true) .andIfSkipColorTransform(false) - .thenExpectDisplaySettingsUsed({kDefaultOutputDestinationClip, kDefaultOutputSourceClip, + .thenExpectDisplaySettingsUsed({kDefaultOutputDestinationClip, kDefaultOutputViewport, kDefaultMaxLuminance, kDefaultOutputDataspace, kDefaultColorTransformMat, Region::INVALID_REGION, kDefaultOutputOrientation}) @@ -3156,7 +3151,7 @@ TEST_F(OutputComposeSurfacesTest_UsesExpectedDisplaySettings, forNonHdrOnlyClien verify().ifMixedCompositionIs(false) .andIfUsesHdr(false) .andIfSkipColorTransform(false) - .thenExpectDisplaySettingsUsed({kDefaultOutputDestinationClip, kDefaultOutputSourceClip, + .thenExpectDisplaySettingsUsed({kDefaultOutputDestinationClip, kDefaultOutputViewport, kDefaultMaxLuminance, kDefaultOutputDataspace, kDefaultColorTransformMat, Region::INVALID_REGION, kDefaultOutputOrientation}) @@ -3169,7 +3164,7 @@ TEST_F(OutputComposeSurfacesTest_UsesExpectedDisplaySettings, verify().ifMixedCompositionIs(false) .andIfUsesHdr(true) .andIfSkipColorTransform(true) - .thenExpectDisplaySettingsUsed({kDefaultOutputDestinationClip, kDefaultOutputSourceClip, + .thenExpectDisplaySettingsUsed({kDefaultOutputDestinationClip, kDefaultOutputViewport, kDefaultMaxLuminance, kDefaultOutputDataspace, mat4(), Region::INVALID_REGION, kDefaultOutputOrientation}) .execute() @@ -3416,7 +3411,6 @@ struct GenerateClientCompositionRequestsTest_ThreeLayers GenerateClientCompositionRequestsTest_ThreeLayers() { mOutput.mState.frame = kDisplayFrame; mOutput.mState.viewport = kDisplayViewport; - mOutput.mState.sourceClip = kDisplaySourceClip; mOutput.mState.destinationClip = kDisplayDestinationClip; mOutput.mState.transform = ui::Transform{kDisplayOrientation}; mOutput.mState.orientation = kDisplayOrientation; @@ -3448,7 +3442,6 @@ struct GenerateClientCompositionRequestsTest_ThreeLayers static const Rect kDisplayFrame; static const Rect kDisplayViewport; - static const Rect kDisplaySourceClip; static const Rect kDisplayDestinationClip; std::array<Layer, 3> mLayers; @@ -3456,7 +3449,6 @@ struct GenerateClientCompositionRequestsTest_ThreeLayers const Rect GenerateClientCompositionRequestsTest_ThreeLayers::kDisplayFrame(0, 0, 100, 200); const Rect GenerateClientCompositionRequestsTest_ThreeLayers::kDisplayViewport(0, 0, 101, 201); -const Rect GenerateClientCompositionRequestsTest_ThreeLayers::kDisplaySourceClip(0, 0, 102, 202); const Rect GenerateClientCompositionRequestsTest_ThreeLayers::kDisplayDestinationClip(0, 0, 103, 203); @@ -3945,14 +3937,12 @@ TEST_F(GenerateClientCompositionRequestsTest, handlesLandscapeModeSplitScreenReq const Rect kPortraitFrame(0, 0, 1000, 2000); const Rect kPortraitViewport(0, 0, 2000, 1000); - const Rect kPortraitSourceClip(0, 0, 1000, 2000); const Rect kPortraitDestinationClip(0, 0, 1000, 2000); const uint32_t kPortraitOrientation = TR_ROT_90; constexpr ui::Dataspace kOutputDataspace = ui::Dataspace::DISPLAY_P3; mOutput.mState.frame = kPortraitFrame; mOutput.mState.viewport = kPortraitViewport; - mOutput.mState.sourceClip = kPortraitSourceClip; mOutput.mState.destinationClip = kPortraitDestinationClip; mOutput.mState.transform = ui::Transform{kPortraitOrientation}; mOutput.mState.orientation = kPortraitOrientation; diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp index 9aa274bc23..a4fc833a17 100644 --- a/services/surfaceflinger/DisplayDevice.cpp +++ b/services/surfaceflinger/DisplayDevice.cpp @@ -226,7 +226,6 @@ void DisplayDevice::setProjection(ui::Rotation orientation, Rect viewport, Rect const bool needsFiltering = (!globalTransform.preserveRects() || (type >= ui::Transform::SCALE)); - const Rect& sourceClip = viewport; Rect destinationClip = globalTransform.transform(viewport); if (destinationClip.isEmpty()) { destinationClip = displayBounds; @@ -244,7 +243,7 @@ void DisplayDevice::setProjection(ui::Rotation orientation, Rect viewport, Rect } getCompositionDisplay()->setProjection(globalTransform, transformOrientation, frame, viewport, - sourceClip, destinationClip, needsFiltering); + destinationClip, needsFiltering); } ui::Transform::RotationFlags DisplayDevice::getPrimaryDisplayRotationFlags() { @@ -324,10 +323,6 @@ const Rect& DisplayDevice::getFrame() const { return mCompositionDisplay->getState().frame; } -const Rect& DisplayDevice::getSourceClip() const { - return mCompositionDisplay->getState().sourceClip; -} - bool DisplayDevice::hasWideColorGamut() const { return mCompositionDisplay->getDisplayColorProfile()->hasWideColorGamut(); } diff --git a/services/surfaceflinger/DisplayDevice.h b/services/surfaceflinger/DisplayDevice.h index 576488c558..1b661907f1 100644 --- a/services/surfaceflinger/DisplayDevice.h +++ b/services/surfaceflinger/DisplayDevice.h @@ -101,7 +101,6 @@ public: const ui::Transform& getTransform() const; const Rect& getViewport() const; const Rect& getFrame() const; - const Rect& getSourceClip() const; bool needsFiltering() const; ui::LayerStack getLayerStack() const; diff --git a/services/surfaceflinger/DisplayRenderArea.cpp b/services/surfaceflinger/DisplayRenderArea.cpp index 7cd283d3bb..bcebf232dc 100644 --- a/services/surfaceflinger/DisplayRenderArea.cpp +++ b/services/surfaceflinger/DisplayRenderArea.cpp @@ -129,7 +129,7 @@ bool DisplayRenderArea::needsFiltering() const { Rect DisplayRenderArea::getSourceCrop() const { // use the projected display viewport by default. if (mSourceCrop.isEmpty()) { - return mDisplay->getSourceClip(); + return mDisplay->getViewport(); } // If there is a source crop provided then it is assumed that the device @@ -144,8 +144,8 @@ Rect DisplayRenderArea::getSourceCrop() const { } const auto flags = ui::Transform::toRotationFlags(logicalOrientation); - int width = mDisplay->getSourceClip().getWidth(); - int height = mDisplay->getSourceClip().getHeight(); + int width = mDisplay->getViewport().getWidth(); + int height = mDisplay->getViewport().getHeight(); ui::Transform rotation; rotation.set(flags, width, height); return rotation.transform(mSourceCrop); diff --git a/services/surfaceflinger/tests/unittests/DisplayTransactionTest.cpp b/services/surfaceflinger/tests/unittests/DisplayTransactionTest.cpp index 9130b04499..009de06aa4 100644 --- a/services/surfaceflinger/tests/unittests/DisplayTransactionTest.cpp +++ b/services/surfaceflinger/tests/unittests/DisplayTransactionTest.cpp @@ -1522,7 +1522,6 @@ public: mHardwareDisplaySize.height), compositionState.transform); EXPECT_EQ(TRANSFORM_FLAGS_ROT_0, compositionState.orientation); - EXPECT_EQ(Rect(mHardwareDisplaySize), compositionState.sourceClip); EXPECT_EQ(Rect(mHardwareDisplaySize), compositionState.destinationClip); EXPECT_EQ(Rect(mHardwareDisplaySize), compositionState.frame); EXPECT_EQ(Rect(mHardwareDisplaySize), compositionState.viewport); @@ -1535,7 +1534,6 @@ public: mHardwareDisplaySize.height), compositionState.transform); EXPECT_EQ(TRANSFORM_FLAGS_ROT_90, compositionState.orientation); - EXPECT_EQ(Rect(SwapWH(mHardwareDisplaySize)), compositionState.sourceClip); EXPECT_EQ(Rect(mHardwareDisplaySize), compositionState.destinationClip); // For 90, the frame and viewport have the hardware display size width and height swapped EXPECT_EQ(Rect(SwapWH(mHardwareDisplaySize)), compositionState.frame); @@ -1549,8 +1547,6 @@ public: mHardwareDisplaySize.height), compositionState.transform); EXPECT_EQ(TRANSFORM_FLAGS_ROT_180, compositionState.orientation); - EXPECT_EQ(Rect(mHardwareDisplaySize), compositionState.sourceClip); - EXPECT_EQ(Rect(mHardwareDisplaySize), compositionState.destinationClip); EXPECT_EQ(Rect(mHardwareDisplaySize), compositionState.frame); EXPECT_EQ(Rect(mHardwareDisplaySize), compositionState.viewport); EXPECT_EQ(false, compositionState.needsFiltering); @@ -1562,7 +1558,6 @@ public: mHardwareDisplaySize.height), compositionState.transform); EXPECT_EQ(TRANSFORM_FLAGS_ROT_270, compositionState.orientation); - EXPECT_EQ(Rect(SwapWH(mHardwareDisplaySize)), compositionState.sourceClip); EXPECT_EQ(Rect(mHardwareDisplaySize), compositionState.destinationClip); // For 270, the frame and viewport have the hardware display size width and height swapped EXPECT_EQ(Rect(SwapWH(mHardwareDisplaySize)), compositionState.frame); |