summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/SurfaceFlinger.cpp
diff options
context:
space:
mode:
authorPadmanabhan Komanduru <quic_pkomandu@quicinc.com>2022-04-01 13:24:48 +0530
committerPadmanabhan Komanduru <quic_pkomandu@quicinc.com>2022-04-11 07:40:35 +0000
commitab9fd81c5e8fe736318fdf67a06d58ada737764d (patch)
tree992d95bf1faa3bc1751b4906849ce9913beb08da /services/surfaceflinger/SurfaceFlinger.cpp
parent843be86c432287f499845d6032e5568ff0313924 (diff)
sf: compare current FB and layer stack params for FB resolution change
Change-Id: I75a452004f5632f49900648fbe1d851bcc358328 CRs-Fixed: 3171148
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp20
1 files changed, 8 insertions, 12 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 04b49325d2..80b92b2aa5 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -4003,33 +4003,29 @@ void SurfaceFlinger::setFrameBufferSizeForScaling(sp<DisplayDevice> displayDevic
auto display = displayDevice->getCompositionDisplay();
int newWidth = currentState.layerStackSpaceRect.width();
int newHeight = currentState.layerStackSpaceRect.height();
- int currentWidth = drawingState.layerStackSpaceRect.width();
- int currentHeight = drawingState.layerStackSpaceRect.height();
int displayWidth = displayDevice->getWidth();
int displayHeight = displayDevice->getHeight();
- bool update_needed = false;
- if (newWidth != currentWidth || newHeight != currentHeight) {
- update_needed = true;
+ if (newWidth != displayWidth || newHeight != displayHeight) {
if (!((newWidth > newHeight && displayWidth > displayHeight) ||
(newWidth < newHeight && displayWidth < displayHeight))) {
std::swap(newWidth, newHeight);
}
}
- if (displayDevice->getWidth() == newWidth && displayDevice->getHeight() == newHeight &&
- !update_needed) {
- displayDevice->setProjection(currentState.orientation, currentState.layerStackSpaceRect,
- currentState.orientedDisplaySpaceRect);
- return;
- }
-
if (newWidth > 0 && newHeight > 0) {
currentState.width = newWidth;
currentState.height = newHeight;
}
+
currentState.orientedDisplaySpaceRect = currentState.layerStackSpaceRect;
+ if (displayWidth == newWidth && displayHeight == newHeight) {
+ displayDevice->setProjection(currentState.orientation, currentState.layerStackSpaceRect,
+ currentState.orientedDisplaySpaceRect);
+ return;
+ }
+
if (mBootStage == BootStage::FINISHED) {
displayDevice->setDisplaySize(currentState.width, currentState.height);
displayDevice->setProjection(currentState.orientation, currentState.layerStackSpaceRect,