Add gem5 display finder mode to hwc3
Change-Id: I33d63607f11cdb072c970838893903bfc780ff08
diff --git a/system/hwc3/Common.cpp b/system/hwc3/Common.cpp
index 9de1c82..edbe93c 100644
--- a/system/hwc3/Common.cpp
+++ b/system/hwc3/Common.cpp
@@ -36,6 +36,7 @@
std::string::npos;
}
+
bool IsInNoOpCompositionMode() {
const std::string mode = ::android::base::GetProperty("ro.vendor.hwcomposer.mode", "");
DEBUG_LOG("%s: sysprop ro.vendor.hwcomposer.mode is %s", __FUNCTION__, mode.c_str());
@@ -48,6 +49,14 @@
return mode == "client";
}
+bool IsInGem5DisplayFinderMode() {
+ const std::string mode =
+ ::android::base::GetProperty("ro.vendor.hwcomposer.display_finder_mode", "");
+ DEBUG_LOG("%s: sysprop ro.vendor.hwcomposer.display_finder_mode is %s",
+ __FUNCTION__, mode.c_str());
+ return mode == "gem5";
+}
+
bool IsInNoOpDisplayFinderMode() {
const std::string mode =
::android::base::GetProperty("ro.vendor.hwcomposer.display_finder_mode", "");
diff --git a/system/hwc3/Common.h b/system/hwc3/Common.h
index eca9b7a..bca365b 100644
--- a/system/hwc3/Common.h
+++ b/system/hwc3/Common.h
@@ -49,6 +49,7 @@
bool IsInNoOpCompositionMode();
bool IsInClientCompositionMode();
+bool IsInGem5DisplayFinderMode();
bool IsInNoOpDisplayFinderMode();
bool IsInDrmDisplayFinderMode();
diff --git a/system/hwc3/DisplayFinder.cpp b/system/hwc3/DisplayFinder.cpp
index 1b45d0a..1bbb56c 100644
--- a/system/hwc3/DisplayFinder.cpp
+++ b/system/hwc3/DisplayFinder.cpp
@@ -248,7 +248,7 @@
HWC3::Error findDisplays(const DrmClient* drm,
std::vector<DisplayMultiConfigs>* outDisplays) {
HWC3::Error error = HWC3::Error::None;
- if (IsInNoOpCompositionMode()) {
+ if (IsInGem5DisplayFinderMode() || IsInNoOpCompositionMode()) {
error = findNoOpDisplays(outDisplays);
} else if (IsInDrmDisplayFinderMode()) {
if (drm == nullptr) {