From ba82d36dce27f420c0784afbf4e05cd0cb0d18f5 Mon Sep 17 00:00:00 2001 From: Mario Kleiner Date: Wed, 15 Oct 2025 07:25:18 +0100 Subject: [PATCH] wsi/display: Allow atomic modeset for change of Colorspace or HDR poperties At least some drivers need a full modeset to change the Colorspace property or to en-/disable HDR mode. E.g., at least amdgpu-kms as tested under Linux 6.8 on Polaris needs it. Otherwise the atomic commit for disabling HDR in _wsi_display_cleanup_state() will fail, and the connector stays stuck in HDR mode after vkDestroySwapchainKHR(). Fixes: 1ed78dd7ec4a ("wsi/display: Clean up DRM hdr/color state on swapchain destruction") Signed-off-by: Mario Kleiner Reviewed-by: Autumn Ashton Part-of: --- src/vulkan/wsi/wsi_common_display.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/vulkan/wsi/wsi_common_display.c b/src/vulkan/wsi/wsi_common_display.c index 568b506d37a..12d357a9c04 100644 --- a/src/vulkan/wsi/wsi_common_display.c +++ b/src/vulkan/wsi/wsi_common_display.c @@ -2733,6 +2733,11 @@ drm_atomic_commit(wsi_display_connector *connector, struct wsi_display_image *im connector->colorspace_enum[drm_colorspace]); } + /* At least some drivers need a modeset for HDR or Colorspace change, e.g., amdgpu + * at least for Colorspace change or HDR en-/disable. + */ + flags |= DRM_MODE_ATOMIC_ALLOW_MODESET; + connector->color_outcome_serial = image->chain->color_outcome_serial; }