diff --git a/.pick_status.json b/.pick_status.json index f667b4062f6..9a1b105b5df 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1324,7 +1324,7 @@ "description": "wsi/display: initialize Xlib display connector property IDs in all cases", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "513ffea1d366c82e50975fd430d012ff8e652a79", "notes": null diff --git a/src/vulkan/wsi/wsi_common_display.c b/src/vulkan/wsi/wsi_common_display.c index 978ea0d1362..586db9ce32f 100644 --- a/src/vulkan/wsi/wsi_common_display.c +++ b/src/vulkan/wsi/wsi_common_display.c @@ -3802,6 +3802,22 @@ wsi_AcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice, return VK_ERROR_INITIALIZATION_FAILED; drmSetClientCap(fd, DRM_CLIENT_CAP_ATOMIC, 1); + + drmModeConnectorPtr drm_connector = + drmModeGetConnector(fd, connector->id); + + if (!drm_connector) { + close(fd); + return VK_ERROR_INITIALIZATION_FAILED; + } + + bool success = find_connector_properties(connector, drm_connector, fd); + drmModeFreeConnector(drm_connector); + if (!success) { + close(fd); + return VK_ERROR_INITIALIZATION_FAILED; + } + wsi->fd = fd; #endif