diff --git a/app/streaming/video/ffmpeg-renderers/vaapi.cpp b/app/streaming/video/ffmpeg-renderers/vaapi.cpp index 8564ee13..a668e2b1 100644 --- a/app/streaming/video/ffmpeg-renderers/vaapi.cpp +++ b/app/streaming/video/ffmpeg-renderers/vaapi.cpp @@ -1,6 +1,7 @@ #include #include "vaapi.h" +#include "utils.h" #include #include @@ -286,8 +287,10 @@ bool VAAPIRenderer::isDirectRenderingSupported() { // Many Wayland renderers don't support YUV surfaces, so use - // another frontend renderer to draw our frames. - return m_WindowSystem == SDL_SYSWM_X11; + // another frontend renderer to draw our frames. The iHD VAAPI + // driver can initialize on XWayland but it crashes in vaPutSurface() + // so we must also not directly render on XWayland either. + return m_WindowSystem == SDL_SYSWM_X11 && !WMUtils::isRunningWayland(); } int VAAPIRenderer::getDecoderColorspace()