Download raw body.
games/moonlight-qt: fix/enable drm
On Sat, Dec 13, 2025 at 04:39:07PM +0100, Rafael Sadowski wrote:
> This is an attempt to fix drm support in moonlight-qt. The patch
> below is form FreeBSD. I have no clue whether all these
> DMA_BUF_SYNC_* are correct on OpenBSD.
>
> OK, feedback?
It would be better to refer to the upstream patch.
https://github.com/moonlight-stream/moonlight-qt/commit/1fd545ae1fea80179d8ac7addfd4cae48554bc63.patch
The ioctl isn't implemented on OpenBSD. Their code doesn't check if the
ioctl fails. Unclear to me if this would still work.
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/games/moonlight-qt/Makefile,v
> diff -u -p -r1.10 Makefile
> --- Makefile 21 Jul 2025 05:58:22 -0000 1.10
> +++ Makefile 13 Dec 2025 15:33:51 -0000
> @@ -5,6 +5,7 @@ PKGNAME = moonlight-qt-${V}
>
> DISTNAME = MoonlightSrc-${V}
> SITES = https://github.com/moonlight-stream/moonlight-qt/releases/download/v${V}/
> +REVISION = 0
>
> CATEGORIES = games
>
> @@ -14,15 +15,14 @@ HOMEPAGE = https://moonlight-stream.org
> PERMIT_PACKAGE = Yes
>
> WANTLIB += ${COMPILER_LIBCXX} EGL GL Qt6Core Qt6Gui Qt6Network
> -WANTLIB += Qt6OpenGL Qt6Qml Qt6QmlMeta Qt6QmlModels Qt6QmlWorkerScript
> -WANTLIB += Qt6Quick Qt6QuickControls2 Qt6Svg SDL2 SDL2_ttf X11
> -WANTLIB += avcodec avutil c crypto m opus placebo ssl swscale
> -WANTLIB += va va-x11 wayland-client
> +WANTLIB += Qt6OpenGL Qt6Qml Qt6Quick Qt6QuickControls2 Qt6Svg
> +WANTLIB += SDL2 SDL2_ttf X11 avcodec avutil c crypto drm m opus
> +WANTLIB += placebo ssl swscale va va-drm va-x11 wayland-client
>
> MODULES = devel/qmake \
> x11/qt6
>
> -MODQMAKE_ARGS += CONFIG+='disable-libvdpau disable-libdrm'
> +MODQMAKE_ARGS += CONFIG+='disable-libvdpau'
>
> RUN_DEPENDS = x11/gtk+4,-guic \
> devel/desktop-file-utils
> Index: patches/patch-app_streaming_video_ffmpeg-renderers_drm_cpp
> ===================================================================
> RCS file: patches/patch-app_streaming_video_ffmpeg-renderers_drm_cpp
> diff -N patches/patch-app_streaming_video_ffmpeg-renderers_drm_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-app_streaming_video_ffmpeg-renderers_drm_cpp 13 Dec 2025 15:33:51 -0000
> @@ -0,0 +1,28 @@
> +Index: app/streaming/video/ffmpeg-renderers/drm.cpp
> +--- app/streaming/video/ffmpeg-renderers/drm.cpp.orig
> ++++ app/streaming/video/ffmpeg-renderers/drm.cpp
> +@@ -12,7 +12,24 @@ extern "C" {
> + }
> +
> + #include <libdrm/drm_fourcc.h>
> ++#ifdef __linux__
> + #include <linux/dma-buf.h>
> ++#else //bundle on BSDs
> ++typedef uint64_t __u64;
> ++// From https://github.com/evadot/drm-subtree or https://reviews.freebsd.org/D23085
> ++struct dma_buf_sync {
> ++ __u64 flags;
> ++};
> ++#define DMA_BUF_SYNC_READ (1 << 0)
> ++#define DMA_BUF_SYNC_WRITE (2 << 0)
> ++#define DMA_BUF_SYNC_RW (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE)
> ++#define DMA_BUF_SYNC_START (0 << 2)
> ++#define DMA_BUF_SYNC_END (1 << 2)
> ++#define DMA_BUF_SYNC_VALID_FLAGS_MASK \
> ++ (DMA_BUF_SYNC_RW | DMA_BUF_SYNC_END)
> ++#define DMA_BUF_BASE 'b'
> ++#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
> ++#endif
> +
> + // Special Rockchip type
> + #ifndef DRM_FORMAT_NA12
>
>
games/moonlight-qt: fix/enable drm