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