Update inverseLayerTransform for screenshots
This fixes a bug where texture filtering is incorrectly requested.
OutputLayer::calculateInitialCrop uses both layerTransform and
inverseLayerTransform so both values need to be updated. The result of
OutputLayer::calculateInitialCrop is used in
OutputLayer::needsFiltering.
Bug: 270537962
Change-Id: I793de6211b262a564b6ebce4db5ca7f5e36069ad
Test: atest TextureFilteringTest
Test: local revert of ag/21593142 then atest SurfaceControlTest
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index eecfeb6..f0f1632 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -7115,6 +7115,8 @@
captureResults.capturedHdrLayers |= isHdrLayer(*snapshot);
layerFE->mSnapshot->geomLayerTransform =
renderArea->getTransform() * layerFE->mSnapshot->geomLayerTransform;
+ layerFE->mSnapshot->geomInverseLayerTransform =
+ layerFE->mSnapshot->geomLayerTransform.inverse();
}
// We allow the system server to take screenshots of secure layers for