SF: Generalize display management
This CL enables SF to manage an arbitrary number of physical displays. Previously, displays were identified by 32-bit IDs, where 0 is the internal display, 1 is the external display, [2, INT32_MAX] are HWC virtual displays, and -1 represents an invalid display or a non-HWC virtual display. If the HWC provides display identification data, SF now allocates 64-bit display IDs for physical and HWC virtual displays. The IDs are expressed using an option type, where the null value represents an invalid display or non-HWC virtual display. Without HWC support, SF falls back to legacy behavior with at most two physical displays. The dynamic display IDs are translated to the legacy constants at the SF/DMS boundary, as a stopgap until the framework is generalized. Bug: 74619554 Test: Connect 3 displays and create virtual displays on HWC 2.2 and 2.3 Test: libsurfaceflinger_unittest Test: SurfaceFlinger_test Change-Id: I0a4a57b6ab7de2dbcf719a4eb1a19a133694012e
Loading
Please register or sign in to comment