composer: add SetClientTarget API for HWC built-in displays
Add support to change the framebuffer resolution for built-in
displays as part of SetClientTarget API. This would enable
destination scaler when needed due to difference in mixer/FB
resolution and panel resolution.
Change-Id: I83c665f48229b8b4b42d2021a6c7060a21ca06cf
CRs-Fixed: 2526524
diff --git a/composer/hwc_display_builtin.cpp b/composer/hwc_display_builtin.cpp
index 75f9fd7..b4c2290 100644
--- a/composer/hwc_display_builtin.cpp
+++ b/composer/hwc_display_builtin.cpp
@@ -950,4 +950,17 @@
return HWC2::Error::None;
}
+HWC2::Error HWCDisplayBuiltIn::SetClientTarget(buffer_handle_t target, int32_t acquire_fence,
+ int32_t dataspace, hwc_region_t damage) {
+ HWC2::Error error = HWCDisplay::SetClientTarget(target, acquire_fence, dataspace, damage);
+ if (error != HWC2::Error::None) {
+ return error;
+ }
+
+ Layer *sdm_layer = client_target_->GetSDMLayer();
+ SetFrameBufferResolution(sdm_layer->input_buffer.unaligned_width,
+ sdm_layer->input_buffer.unaligned_height);
+
+ return HWC2::Error::None;
+}
} // namespace sdm