From fb8dc918932d0cf246227468f742d89fe4d80d57 Mon Sep 17 00:00:00 2001 From: Emilio Pozuelo Monfort Date: Thu, 11 Oct 2018 16:20:00 +0200 Subject: [PATCH] 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: