Reland "ui: Refactor stable ID generation for GPU virtual displays"
This is a partial port of ag/17832464 for main with additional tests.
Use ftl::stable_hash to generate stable ID from uniqueId for GPU virtual
displays. This allows FLAG_STABLE consistent with PhysicalDisplayId that
uses a unique EDID, as well as being stable across reboots when using
hardcoded or static unique ID.
Add DisplayId.isStable()/isVirtual() interfaces and refactor previous
legacy usages.
Bug: 339525838
Bug: 137375833
Bug: 194863377
Test: atest libsurfaceflinger_unittest
Test: atest libcompositionengine_test
Test: atest DisplayIdGeneratorTest
Change-Id: I441046f95860bbcaf837468a3c3f5c944225adde
diff --git a/services/surfaceflinger/CompositionEngine/src/Display.cpp b/services/surfaceflinger/CompositionEngine/src/Display.cpp
index c18be7a..83b1b68 100644
--- a/services/surfaceflinger/CompositionEngine/src/Display.cpp
+++ b/services/surfaceflinger/CompositionEngine/src/Display.cpp
@@ -79,7 +79,7 @@
}
bool Display::isVirtual() const {
- return VirtualDisplayId::tryCast(mId).has_value();
+ return mId.isVirtual();
}
std::optional<DisplayId> Display::getDisplayId() const {