Revert "[SF] Intersect layers with display frame not bounds"
This reverts commit 40270c68ae95e5bd7338893dccf7dcd64c529445.
Reason for revert: b/160309152
Change-Id: Id441b1ded16369228403da81ea65333020849a59
diff --git a/services/surfaceflinger/CompositionEngine/src/Output.cpp b/services/surfaceflinger/CompositionEngine/src/Output.cpp
index 8883ef3..b07c904 100644
--- a/services/surfaceflinger/CompositionEngine/src/Output.cpp
+++ b/services/surfaceflinger/CompositionEngine/src/Output.cpp
@@ -539,7 +539,7 @@
// TODO(b/121291683): Why does this not use visibleRegion? (see outputSpaceVisibleRegion below)
const auto& outputState = getState();
Region drawRegion(outputState.transform.transform(visibleNonTransparentRegion));
- drawRegion.andSelf(outputState.frame);
+ drawRegion.andSelf(outputState.bounds);
if (drawRegion.isEmpty()) {
return;
}
diff --git a/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp b/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp
index 09e9341..59ed72e 100644
--- a/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp
+++ b/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp
@@ -1067,7 +1067,7 @@
EXPECT_CALL(mOutput, getOutputLayerOrderedByZByIndex(0u))
.WillRepeatedly(Return(&mLayer.outputLayer));
- mOutput.mState.frame = Rect(0, 0, 200, 300);
+ mOutput.mState.bounds = Rect(0, 0, 200, 300);
mOutput.mState.viewport = Rect(0, 0, 200, 300);
mOutput.mState.transform = ui::Transform(TR_IDENT, 200, 300);
@@ -1116,7 +1116,6 @@
EXPECT_CALL(mOutput, belongsInOutput(sp<LayerFE>(mLayer.layerFE))).WillOnce(Return(false));
EXPECT_CALL(*mLayer.layerFE,
prepareCompositionState(compositionengine::LayerFE::StateSubset::BasicGeometry));
- EXPECT_CALL(mOutput, ensureOutputLayer(_, _)).Times(0);
mGeomSnapshots.clear();
@@ -1126,35 +1125,30 @@
TEST_F(OutputEnsureOutputLayerIfVisibleTest,
skipsLatchIfAlreadyLatchedBeforeCheckingIfLayerBelongs) {
EXPECT_CALL(mOutput, belongsInOutput(sp<LayerFE>(mLayer.layerFE))).WillOnce(Return(false));
- EXPECT_CALL(mOutput, ensureOutputLayer(_, _)).Times(0);
ensureOutputLayerIfVisible();
}
TEST_F(OutputEnsureOutputLayerIfVisibleTest, takesEarlyOutIfLayerHasNoCompositionState) {
EXPECT_CALL(*mLayer.layerFE, getCompositionState()).WillOnce(Return(nullptr));
- EXPECT_CALL(mOutput, ensureOutputLayer(_, _)).Times(0);
ensureOutputLayerIfVisible();
}
TEST_F(OutputEnsureOutputLayerIfVisibleTest, takesEarlyOutIfLayerNotVisible) {
mLayer.layerFEState.isVisible = false;
- EXPECT_CALL(mOutput, ensureOutputLayer(_, _)).Times(0);
ensureOutputLayerIfVisible();
}
TEST_F(OutputEnsureOutputLayerIfVisibleTest, takesEarlyOutIfLayerHasEmptyVisibleRegion) {
mLayer.layerFEState.geomLayerBounds = FloatRect{0, 0, 0, 0};
- EXPECT_CALL(mOutput, ensureOutputLayer(_, _)).Times(0);
ensureOutputLayerIfVisible();
}
-TEST_F(OutputEnsureOutputLayerIfVisibleTest, takesNotSoEarlyOutIfDrawRegionEmpty) {
- mOutput.mState.frame = Rect(0, 0, 0, 0);
- EXPECT_CALL(mOutput, ensureOutputLayer(_, _)).Times(0);
+TEST_F(OutputEnsureOutputLayerIfVisibleTest, takesNotSoEarlyOutifDrawRegionEmpty) {
+ mOutput.mState.bounds = Rect(0, 0, 0, 0);
ensureOutputLayerIfVisible();
}
@@ -1426,41 +1420,6 @@
EXPECT_THAT(mLayer.outputLayerState.outputSpaceVisibleRegion, RegionEq(kRegionClipped));
}
-TEST_F(OutputEnsureOutputLayerIfVisibleTest, handlesCreatingOutputLayerWhenBoundsDifferFrame) {
- const ui::Size bounds(1920, 1080);
- const ui::Size frame(3840, 2160);
- mOutput.mState.bounds = Rect(bounds);
- mOutput.mState.viewport = Rect(bounds);
- mOutput.mState.frame = Rect(frame);
- ui::Transform transform;
- transform.set(frame.width / bounds.width, 0, 0, frame.height / bounds.height);
- mOutput.mState.transform = transform;
-
- // Layer bounds are in the bottom right corner
- const Rect layerBounds =
- Rect(bounds.width - 20, bounds.height - 20, bounds.width, bounds.height);
- const Region fullBoundsRegion = Region(layerBounds);
- mLayer.layerFEState.geomLayerBounds =
- FloatRect{static_cast<float>(layerBounds.left), static_cast<float>(layerBounds.top),
- static_cast<float>(layerBounds.right),
- static_cast<float>(layerBounds.bottom)};
-
- EXPECT_CALL(mOutput, getOutputLayerCount()).WillOnce(Return(0u));
- EXPECT_CALL(mOutput, ensureOutputLayer(Eq(std::nullopt), Eq(mLayer.layerFE)))
- .WillOnce(Return(&mLayer.outputLayer));
-
- ensureOutputLayerIfVisible();
- EXPECT_THAT(mCoverageState.dirtyRegion, RegionEq(fullBoundsRegion));
- EXPECT_THAT(mCoverageState.aboveCoveredLayers, RegionEq(fullBoundsRegion));
- EXPECT_THAT(mCoverageState.aboveOpaqueLayers, RegionEq(fullBoundsRegion));
-
- EXPECT_THAT(mLayer.outputLayerState.visibleRegion, RegionEq(fullBoundsRegion));
- EXPECT_THAT(mLayer.outputLayerState.visibleNonTransparentRegion, RegionEq(fullBoundsRegion));
- EXPECT_THAT(mLayer.outputLayerState.coveredRegion, RegionEq(kEmptyRegion));
- EXPECT_THAT(mLayer.outputLayerState.outputSpaceVisibleRegion,
- RegionEq(transform.transform(fullBoundsRegion)));
-}
-
TEST_F(OutputEnsureOutputLayerIfVisibleTest, coverageAccumulatesTest) {
mLayer.layerFEState.isOpaque = false;
mLayer.layerFEState.contentDirty = true;
@@ -1561,7 +1520,7 @@
EXPECT_TRUE(kExpectedLayerVisibleRegion.subtract(kExpectedLayerShadowRegion).isEmpty());
}
-TEST_F(OutputEnsureOutputLayerIfVisibleTest, takesNotSoEarlyOutIfLayerWithShadowIsCovered) {
+TEST_F(OutputEnsureOutputLayerIfVisibleTest, takesNotSoEarlyOutifLayerWithShadowIsCovered) {
ui::Transform translate;
translate.set(50, 50);
mLayer.layerFEState.geomLayerTransform = translate;