SF: Add sideband stream setup to setUpHwComposer
Add programming of sideband streams in SetupHwComposer
Test: Compile/Run manually
Merged-In: Ic71d95746015f6634d7f861370be6a1de41f4eb7
Change-Id: Ic71d95746015f6634d7f861370be6a1de41f4eb7
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index d3cd1ac..e70344e 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1967,6 +1967,20 @@
return HAL_DATASPACE_V0_SRGB;
}
+void SurfaceFlinger::configureSidebandComposition(const CompositionInfo& compositionInfo) const
+{
+ HWC2::Error error;
+ LOG_ALWAYS_FATAL_IF(compositionInfo.hwc.sidebandStream == nullptr,
+ "CompositionType is sideband, but sideband stream is nullptr");
+ error = (*compositionInfo.hwc.hwcLayer)
+ ->setSidebandStream(compositionInfo.hwc.sidebandStream->handle());
+ if (error != HWC2::Error::None) {
+ ALOGE("[SF] Failed to set sideband stream %p: %s (%d)",
+ compositionInfo.hwc.sidebandStream->handle(), to_string(error).c_str(),
+ static_cast<int32_t>(error));
+ }
+}
+
void SurfaceFlinger::configureHwcCommonData(const CompositionInfo& compositionInfo) const
{
HWC2::Error error;
@@ -2114,7 +2128,10 @@
case HWC2::Composition::Invalid:
case HWC2::Composition::Client:
case HWC2::Composition::Cursor:
+ break;
+
case HWC2::Composition::Sideband:
+ configureSidebandComposition(compositionInfo);
break;
case HWC2::Composition::SolidColor: