mesa/src/vulkan
Yuxuan Shui 035be8e042 wsi/display: initialize Xlib display connector property IDs in all cases
Usually connector property IDs are acquired in
wsi_display_get_connector, which is called by wsi_get_connectors, and in
turn by vkGetPhysicalDeviceDisplayProperties2KHR and
vkGetPhysicalDeviceDisplayPlanePropertiesKHR. Except if the drm fd is
not available when these functions are called. Which will be the case if
vkAcquireXlibDisplayEXT is not called first.

So it goes like this. First, the display is created in
vkGetRandROutputDisplayEXT. Then it's used in
vkGetPhysicalDeviceDisplayPlanePropertiesKHR, but since the drm fd is
not available at this point, connector property IDs are not initialized.
Later, this display is used in vkAcquireXlibDisplayEXT, which also
doesn't touch the property IDs. Finally in drm_atomic_commit, the
atomic commit fails with EINVAL, specifically because of the
uninitialized ID of the "CRTC_ID" property. Since it's one of the
properties drm_atomic_commit tries to set.

This commit makes sure that find_connector_properties is called in
vkAcquireXlibDisplayEXT to initialize the property IDs.

Fixes: 513ffea1d3 ("wsi/display: use atomic mode setting")
Signed-off-by: Yuxuan Shui <yshui@codeweavers.com>
(cherry picked from commit 37a1986691)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40979>
2026-04-14 15:27:47 +02:00
..
anti-lag-layer anti-lag: Do not enable layer by default. 2025-09-26 13:29:38 +00:00
device-select-layer wsi/wayland: Use wl_fixes to destroy wl_registry 2026-03-17 12:38:44 +01:00
overlay-layer mesa: replace most occurrences of getenv() with os_get_option() 2025-11-06 04:36:13 +00:00
registry vulkan: update spec to 1.4.335 2025-12-03 14:47:00 +00:00
runtime vulkan: Bump MAX_ENCODE_PASSES 2026-04-01 11:45:34 +02:00
screenshot-layer mesa: replace most occurrences of getenv() with os_get_option() 2025-11-06 04:36:13 +00:00
util vulkan: update ALLOWED_ANDROID_VERSION for api level 36 2025-12-17 19:22:47 +00:00
vram-report-limit-layer clang-format: Update the .clang-format files to conformance clang-format json-schema 2025-09-09 07:04:55 +00:00
wsi wsi/display: initialize Xlib display connector property IDs in all cases 2026-04-14 15:27:47 +02:00
meson.build wsi/display: Expose HDR10 colorspace based on EDID 2025-08-05 08:50:05 +00:00
vulkan-android.sym
vulkan-icd-android-symbols.txt vk: be stricter about symbols check between android and other platforms 2023-03-04 07:41:10 +00:00
vulkan-icd-symbols.txt vk: be stricter about symbols check between android and other platforms 2023-03-04 07:41:10 +00:00
vulkan.sym
vulkan_api.def.in