From a93116192389d8941a0010f9983ea46f8c06c947 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Thu, 8 Jan 2026 22:03:44 -0600 Subject: [PATCH] Reset client caps before rendering in case SDL changed them --- app/streaming/video/ffmpeg-renderers/drm.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/streaming/video/ffmpeg-renderers/drm.cpp b/app/streaming/video/ffmpeg-renderers/drm.cpp index 87515b27..9afe956c 100644 --- a/app/streaming/video/ffmpeg-renderers/drm.cpp +++ b/app/streaming/video/ffmpeg-renderers/drm.cpp @@ -313,6 +313,13 @@ void DrmRenderer::prepareToRender() SDL_GetError()); } + // Set our DRM client caps again. SDL 3.4+ will disable these + // when dropping master if it's using atomic itself. + drmSetClientCap(m_DrmFd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1); + if (m_PropSetter.isAtomic()) { + drmSetClientCap(m_DrmFd, DRM_CLIENT_CAP_ATOMIC, 1); + } + // Set the output rect to match the new CRTC size after modesetting m_OutputRect.x = m_OutputRect.y = 0; drmModeCrtc* crtc = drmModeGetCrtc(m_DrmFd, m_Crtc.objectId());