[mutter] output/kms: Make winsys_id unique



commit fb8dc918932d0cf246227468f742d89fe4d80d57
Author: Emilio Pozuelo Monfort <emilio pozuelo collabora co uk>
Date:   Thu Oct 11 16:20:00 2018 +0200

    output/kms: Make winsys_id unique
    
    We were using the connector_id for the winsys_id, but different
    devices could have connectors with the same id. Since we use
    winsys_id to uniquely identify outputs, use both the connector
    id and the device id to avoid having outputs with the same id.

 src/backends/native/meta-output-kms.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/src/backends/native/meta-output-kms.c b/src/backends/native/meta-output-kms.c
index 8688320a5..f3fa17e58 100644
--- a/src/backends/native/meta-output-kms.c
+++ b/src/backends/native/meta-output-kms.c
@@ -512,6 +512,7 @@ meta_create_kms_output (MetaGpuKms        *gpu_kms,
   unsigned int i;
   unsigned int crtc_mask;
   int fd;
+  uint32_t id;
 
   output = g_object_new (META_TYPE_OUTPUT, NULL);
 
@@ -520,9 +521,11 @@ meta_create_kms_output (MetaGpuKms        *gpu_kms,
   output->driver_notify = (GDestroyNotify) meta_output_destroy_notify;
 
   output->gpu = gpu;
-  output->winsys_id = connector->connector_id;
   output->name = make_output_name (connector);
 
+  id = meta_gpu_kms_get_id (gpu_kms);
+  output->winsys_id = ((uint64_t) id << 32) | connector->connector_id;
+
   switch (connector->subpixel)
     {
     case DRM_MODE_SUBPIXEL_NONE:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]