SurfaceFlinger: Change to support client target flip
- Add support to flip framebuffer target if
HWC2 implementation requests for it.
b/38114488
b/68271386
CRs-Fixed: 2057401
Change-Id: I91422ef60a139cbaf491db219b216cd1252e7e63
Signed-off-by: Madhuri Athota <mathota@codeaurora.org>
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
index c0f8f96..7850243 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
@@ -565,6 +565,20 @@
return mDisplayData[displayId].hasDeviceComposition;
}
+bool HWComposer::hasFlipClientTargetRequest(int32_t displayId) const {
+ if (displayId == DisplayDevice::DISPLAY_ID_INVALID) {
+ // Displays without a corresponding HWC display are never composed by
+ // the device
+ return false;
+ }
+ if (!isValidDisplay(displayId)) {
+ ALOGE("hasFlipClientTargetRequest: Invalid display %d", displayId);
+ return false;
+ }
+ return ((static_cast<uint32_t>(mDisplayData[displayId].displayRequests) &
+ static_cast<uint32_t>(HWC2::DisplayRequest::FlipClientTarget)) != 0);
+}
+
bool HWComposer::hasClientComposition(int32_t displayId) const {
if (displayId == DisplayDevice::DISPLAY_ID_INVALID) {
// Displays without a corresponding HWC display are always composed by