Fix DisplayFinder for secondary Goldfish displays
Incorrectly handled in aosp/1843498. From logcat
`RanchuHwc: init: display:1 missing config:0`
Bug: b/201578179
Bug: b/202344168
Test: presubmit
Change-Id: I1e9f4349718dedf80dd29b332ad998d7b02b6cd5
diff --git a/system/hwc2/DisplayFinder.cpp b/system/hwc2/DisplayFinder.cpp
index 2a5655c..df8f0fd 100644
--- a/system/hwc2/DisplayFinder.cpp
+++ b/system/hwc2/DisplayFinder.cpp
@@ -38,25 +38,24 @@
const auto deviceConfig = cuttlefish::GetDeviceConfig();
hwc2_display_t displayId = 0;
- hwc2_config_t configId = 0;
for (const auto& deviceDisplayConfig : deviceConfig.display_config()) {
+ const auto vsyncPeriodNanos =
+ HertzToPeriodNanos(deviceDisplayConfig.refresh_rate_hz());
+
DisplayMultiConfigs display = {
.displayId = displayId,
- .activeConfigId = configId,
+ .activeConfigId = 0,
.configs =
{
- DisplayConfig(configId, //
+ DisplayConfig(0, //
deviceDisplayConfig.width(), //
deviceDisplayConfig.height(), //
deviceDisplayConfig.dpi(), //
deviceDisplayConfig.dpi(), //
- HertzToPeriodNanos(
- deviceDisplayConfig.refresh_rate_hz()) //
- ), //
+ vsyncPeriodNanos),
},
};
displays.push_back(display);
- ++configId;
++displayId;
}
@@ -158,13 +157,12 @@
}
hwc2_display_t secondaryDisplayId = 1;
- hwc2_config_t secondaryConfigId = 1;
while (!propIntParts.empty()) {
DisplayMultiConfigs display;
display.displayId = secondaryDisplayId;
display.activeConfigId = 0;
display.configs.push_back(DisplayConfig(
- secondaryConfigId, //
+ 0, //
/*width=*/propIntParts[1], //
/*heighth=*/propIntParts[2], //
/*dpiXh=*/propIntParts[3], //
@@ -173,7 +171,6 @@
));
displays.push_back(display);
- ++secondaryConfigId;
++secondaryDisplayId;
propIntParts.erase(propIntParts.begin(), propIntParts.begin() + 5);