aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2023-06-10 09:21:05 +0000
committerJan Beich <jbeich@FreeBSD.org>2023-08-20 23:48:22 +0000
commita6d6f608ea3134f23ac47159df3f850555546abe (patch)
tree9bacbe93c9c25052d1dc6f6644c47a66859ab53f
parent8dee2c2753132493b2adc5388b66407a3d0feb60 (diff)
multimedia/libva-nvidia-driver: add new port
This is an VA-API implementation that uses NVDEC as a backend. This implementation is specifically designed to be used by Firefox for accelerated decode of web content, and may not operate correctly in other applications. System requirements: - Non-legacy NVIDIA GPU - nvidia-drm-kmod for DMA-BUF - libc6-shim (nv-sglrun) for NVDEC https://github.com/elFarto/nvidia-vaapi-driver
-rw-r--r--multimedia/Makefile1
-rw-r--r--multimedia/libva-nvidia-driver/Makefile45
-rw-r--r--multimedia/libva-nvidia-driver/distinfo17
-rw-r--r--multimedia/libva-nvidia-driver/files/patch-meson.build21
-rw-r--r--multimedia/libva-nvidia-driver/pkg-descr9
5 files changed, 93 insertions, 0 deletions
diff --git a/multimedia/Makefile b/multimedia/Makefile
index 27e9c05c0cf9..580bdb4c2ed0 100644
--- a/multimedia/Makefile
+++ b/multimedia/Makefile
@@ -197,6 +197,7 @@
SUBDIR += libva-intel-driver
SUBDIR += libva-intel-hybrid-driver
SUBDIR += libva-intel-media-driver
+ SUBDIR += libva-nvidia-driver
SUBDIR += libva-utils
SUBDIR += libva-vdpau-driver
SUBDIR += libvdpau
diff --git a/multimedia/libva-nvidia-driver/Makefile b/multimedia/libva-nvidia-driver/Makefile
new file mode 100644
index 000000000000..ac605cbd58c3
--- /dev/null
+++ b/multimedia/libva-nvidia-driver/Makefile
@@ -0,0 +1,45 @@
+PORTNAME= libva-nvidia-driver
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.0.10
+CATEGORIES= multimedia
+
+PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
+PATCHFILES+= 8e8d49e11772.patch:-p1 # https://github.com/elFarto/nvidia-vaapi-driver/pull/220
+PATCHFILES+= 5dc46a5a2fab.patch:-p1 # https://github.com/elFarto/nvidia-vaapi-driver/pull/220
+PATCHFILES+= 22be7754bee5.patch:-p1 # https://github.com/elFarto/nvidia-vaapi-driver/pull/220
+PATCHFILES+= 119a5a3ac448.patch:-p1 # https://github.com/elFarto/nvidia-vaapi-driver/pull/220
+PATCHFILES+= 39c08a61a888.patch:-p1 # https://github.com/elFarto/nvidia-vaapi-driver/pull/220
+PATCHFILES+= fc1afd905f8c.patch:-p1 # https://github.com/elFarto/nvidia-vaapi-driver/pull/220
+PATCHFILES+= 97430842d11a.patch:-p1 # https://github.com/elFarto/nvidia-vaapi-driver/pull/220
+
+MAINTAINER= jbeich@FreeBSD.org
+COMMENT= NVDEC-based backend for VAAPI
+WWW= https://github.com/elFarto/nvidia-vaapi-driver
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+ONLY_FOR_ARCHS= amd64
+ONLY_FOR_ARCHS_REASON= Unusable without nvidia-drm-kmod and libc6-shim
+
+BUILD_DEPENDS= libdrm>=2.4.60,1:graphics/libdrm \
+ ffnvcodec-headers>=11.1.5.1:multimedia/ffnvcodec-headers \
+ libva>=2.8.0:multimedia/libva
+
+USES= compiler:c11 gl meson pkgconfig
+USE_GITHUB= yes
+USE_GL= egl
+GH_ACCOUNT= elFarto
+GH_PROJECT= nvidia-vaapi-driver
+PLIST_FILES= lib/dri/nvidia-drm_drv_video.so
+
+OPTIONS_DEFINE= GSTREAMER
+OPTIONS_DEFAULT=GSTREAMER
+
+GSTREAMER_USES= gstreamer:1
+GSTREAMER_USE= GSTREAMER=bad
+
+post-patch-GSTREAMER-off:
+ @${REINPLACE_CMD} 's/gstreamer-codecparsers-1\.0//' ${WRKSRC}/meson.build
+
+.include <bsd.port.mk>
diff --git a/multimedia/libva-nvidia-driver/distinfo b/multimedia/libva-nvidia-driver/distinfo
new file mode 100644
index 000000000000..ecd751f574e3
--- /dev/null
+++ b/multimedia/libva-nvidia-driver/distinfo
@@ -0,0 +1,17 @@
+TIMESTAMP = 1686388865
+SHA256 (elFarto-nvidia-vaapi-driver-v0.0.10_GH0.tar.gz) = df63b0832ccf9f74a90ff8b26d8e069606e0614d1748e35a857d2e53745ab95c
+SIZE (elFarto-nvidia-vaapi-driver-v0.0.10_GH0.tar.gz) = 182313
+SHA256 (8e8d49e11772.patch) = 7bba9dc7e96961a4e9b7046c192cfe0bde7d76c9765dd3df4ad4c0368378a427
+SIZE (8e8d49e11772.patch) = 1258
+SHA256 (5dc46a5a2fab.patch) = 9d63405e05f60ac702a3842def28645907b5319dbcea124f97b965344f27cbd2
+SIZE (5dc46a5a2fab.patch) = 3602
+SHA256 (22be7754bee5.patch) = c41d0f88ed773c751d4f515d6e537232a679cbc5d38e985cb77f422259c107a9
+SIZE (22be7754bee5.patch) = 1248
+SHA256 (119a5a3ac448.patch) = d6d981539ea4c6c3143532ad0182aa68b6df72a5c58232e3692247f8afbeff6f
+SIZE (119a5a3ac448.patch) = 2064
+SHA256 (39c08a61a888.patch) = c84fedb1e77f8465c44d48e4aefd9d78399b40c3f75ac3fa8b1ae730db285e4c
+SIZE (39c08a61a888.patch) = 990
+SHA256 (fc1afd905f8c.patch) = 2afb9e9d0ad86d1b8bf286dbc9921f98c2c2efb0a0353e47d031a90dac515e3d
+SIZE (fc1afd905f8c.patch) = 1229
+SHA256 (97430842d11a.patch) = 272c10f67ac344b83d87a8662eda6f18d6955157597e4171ba060455af0e5a6a
+SIZE (97430842d11a.patch) = 1289
diff --git a/multimedia/libva-nvidia-driver/files/patch-meson.build b/multimedia/libva-nvidia-driver/files/patch-meson.build
new file mode 100644
index 000000000000..e155c3c2f0ce
--- /dev/null
+++ b/multimedia/libva-nvidia-driver/files/patch-meson.build
@@ -0,0 +1,21 @@
+- Avoid conflict with libva-vdpau-driver
+
+--- meson.build.orig 2023-06-10 09:21:05 UTC
++++ meson.build
+@@ -71,7 +71,7 @@ shared_library(
+ nvidia_incdir = include_directories('nvidia-include')
+
+ shared_library(
+- 'nvidia_drv_video',
++ 'nvidia-drm_drv_video',
+ name_prefix: '',
+ sources: sources,
+ dependencies: deps,
+@@ -83,6 +83,6 @@ meson.add_devenv(environment({
+
+ meson.add_devenv(environment({
+ 'NVD_LOG': '1',
+- 'LIBVA_DRIVER_NAME': 'nvidia',
++ 'LIBVA_DRIVER_NAME': 'nvidia-drm',
+ 'LIBVA_DRIVERS_PATH': meson.project_build_root(),
+ }))
diff --git a/multimedia/libva-nvidia-driver/pkg-descr b/multimedia/libva-nvidia-driver/pkg-descr
new file mode 100644
index 000000000000..01d24de66009
--- /dev/null
+++ b/multimedia/libva-nvidia-driver/pkg-descr
@@ -0,0 +1,9 @@
+This is an VA-API implementation that uses NVDEC as a backend. This
+implementation is specifically designed to be used by Firefox for
+accelerated decode of web content, and may not operate correctly in
+other applications.
+
+System requirements:
+- Non-legacy NVIDIA GPU
+- nvidia-drm-kmod for DMA-BUF
+- libc6-shim (nv-sglrun) for NVDEC