enable cuda (nv-codec-headers + pinned-picture fix); pkgrel 1.1, add .gitignore, regen .SRCINFO
This commit is contained in:
@@ -1,17 +1,24 @@
|
|||||||
pkgbase = vmaf
|
pkgbase = vmaf
|
||||||
pkgdesc = Perceptual video quality assessment algorithm based on multi-method fusion
|
pkgdesc = Perceptual video quality assessment algorithm based on multi-method fusion
|
||||||
pkgver = 3.2.0
|
pkgver = 3.2.0
|
||||||
pkgrel = 1
|
pkgrel = 1.1
|
||||||
url = https://github.com/Netflix/vmaf/
|
url = https://github.com/Netflix/vmaf/
|
||||||
arch = x86_64
|
arch = x86_64
|
||||||
license = BSD-2-Clause-Patent
|
license = BSD-2-Clause-Patent
|
||||||
checkdepends = vim
|
checkdepends = vim
|
||||||
|
makedepends = cuda
|
||||||
|
makedepends = gcc15
|
||||||
makedepends = meson
|
makedepends = meson
|
||||||
makedepends = nasm
|
makedepends = nasm
|
||||||
depends = glibc
|
depends = glibc
|
||||||
depends = libgcc
|
depends = libgcc
|
||||||
depends = libstdc++
|
depends = libstdc++
|
||||||
|
optdepends = nvidia-utils: CUDA GPU acceleration
|
||||||
source = https://github.com/Netflix/vmaf/archive/v3.2.0/vmaf-3.2.0.tar.gz
|
source = https://github.com/Netflix/vmaf/archive/v3.2.0/vmaf-3.2.0.tar.gz
|
||||||
|
source = nv-codec-headers-1b5a81ada8874efb2af0534ffe74049c557e212d.tar.gz::https://code.ffmpeg.org/FFmpeg/nv-codec-headers/archive/1b5a81ada8874efb2af0534ffe74049c557e212d.tar.gz
|
||||||
|
source = 0001-fix-cuda-pinned-picture-null-state.patch
|
||||||
sha256sums = a28f93f3b4fa65601be324587072e32a6a704a304ba7b1aec9b70b3f709bc1dc
|
sha256sums = a28f93f3b4fa65601be324587072e32a6a704a304ba7b1aec9b70b3f709bc1dc
|
||||||
|
sha256sums = SKIP
|
||||||
|
sha256sums = SKIP
|
||||||
|
|
||||||
pkgname = vmaf
|
pkgname = vmaf
|
||||||
|
|||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
*
|
||||||
|
!.gitignore
|
||||||
|
!.nvchecker.toml
|
||||||
|
!.SRCINFO
|
||||||
|
!*.patch
|
||||||
|
!LICENSE
|
||||||
|
!LICENSES/
|
||||||
|
!LICENSES/**
|
||||||
|
!PKGBUILD
|
||||||
|
!REUSE.toml
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
--- a/libvmaf/src/cuda/picture_cuda.c
|
||||||
|
+++ b/libvmaf/src/cuda/picture_cuda.c
|
||||||
|
@@ -143,6 +143,7 @@ int vmaf_cuda_picture_alloc_pinned(VmafPicture *pic, enum VmafPixelFormat pix_f
|
||||||
|
err |= vmaf_picture_priv_init(pic);
|
||||||
|
VmafPicturePrivate* priv = pic->priv;
|
||||||
|
+ priv->cuda.state = cuda_state;
|
||||||
|
priv->cuda.ctx = cuda_state->ctx;
|
||||||
|
err |= vmaf_picture_set_release_callback(pic, NULL, default_release_pinned_picture);
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
pkgname=vmaf
|
pkgname=vmaf
|
||||||
pkgver=3.2.0
|
pkgver=3.2.0
|
||||||
pkgrel=1
|
pkgrel=1.1
|
||||||
pkgdesc='Perceptual video quality assessment algorithm based on multi-method fusion'
|
pkgdesc='Perceptual video quality assessment algorithm based on multi-method fusion'
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
url='https://github.com/Netflix/vmaf/'
|
url='https://github.com/Netflix/vmaf/'
|
||||||
@@ -11,20 +11,32 @@ depends=(
|
|||||||
'glibc'
|
'glibc'
|
||||||
'libgcc'
|
'libgcc'
|
||||||
'libstdc++')
|
'libstdc++')
|
||||||
|
optdepends=('nvidia-utils: CUDA GPU acceleration')
|
||||||
makedepends=(
|
makedepends=(
|
||||||
|
'cuda'
|
||||||
|
'gcc15'
|
||||||
'meson'
|
'meson'
|
||||||
'nasm')
|
'nasm')
|
||||||
checkdepends=(
|
checkdepends=(
|
||||||
'vim')
|
'vim')
|
||||||
source=("https://github.com/Netflix/vmaf/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz")
|
_nvcodec_commit='1b5a81ada8874efb2af0534ffe74049c557e212d'
|
||||||
sha256sums=('a28f93f3b4fa65601be324587072e32a6a704a304ba7b1aec9b70b3f709bc1dc')
|
source=("https://github.com/Netflix/vmaf/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz"
|
||||||
|
"nv-codec-headers-${_nvcodec_commit}.tar.gz::https://code.ffmpeg.org/FFmpeg/nv-codec-headers/archive/${_nvcodec_commit}.tar.gz"
|
||||||
|
'0001-fix-cuda-pinned-picture-null-state.patch')
|
||||||
|
sha256sums=('a28f93f3b4fa65601be324587072e32a6a704a304ba7b1aec9b70b3f709bc1dc'
|
||||||
|
'SKIP'
|
||||||
|
'SKIP')
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
patch -p1 -d "${pkgname}-${pkgver}" < 0001-fix-cuda-pinned-picture-null-state.patch
|
||||||
|
}
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
local _jobs
|
local _jobs
|
||||||
local _max_jobs='20'
|
local _max_jobs='20'
|
||||||
|
|
||||||
_jobs="$(nproc)"
|
_jobs="$(nproc)"
|
||||||
|
|
||||||
# may fail to compile on a high core count system
|
# may fail to compile on a high core count system
|
||||||
# https://github.com/Netflix/vmaf/issues/1541
|
# https://github.com/Netflix/vmaf/issues/1541
|
||||||
if [ "$_jobs" -ge "$_max_jobs" ]
|
if [ "$_jobs" -ge "$_max_jobs" ]
|
||||||
@@ -32,17 +44,25 @@ build() {
|
|||||||
_jobs="$_max_jobs"
|
_jobs="$_max_jobs"
|
||||||
printf '%s\n' "limiting the compilation jobs to ${_jobs}"
|
printf '%s\n' "limiting the compilation jobs to ${_jobs}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
arch-meson -Denable_avx512='false' "${pkgname}-${pkgver}/libvmaf" build
|
export PATH="/opt/cuda/bin:$PATH"
|
||||||
|
export CUDA_HOST_COMPILER=/usr/bin/gcc-15
|
||||||
|
# install bundled nv-codec-headers (system package lacks cuMemFreeAsync/cuMemAllocAsync)
|
||||||
|
make -C "nv-codec-headers" PREFIX="${srcdir}/nvcodec-prefix" install
|
||||||
|
export C_INCLUDE_PATH="${srcdir}/nvcodec-prefix/include:${C_INCLUDE_PATH}"
|
||||||
|
# cd into libvmaf so nvcc's hardcoded relative include paths (../src, ../include)
|
||||||
|
# resolve correctly when the build dir is a subdirectory of the source
|
||||||
|
cd "${pkgname}-${pkgver}/libvmaf"
|
||||||
|
arch-meson -Denable_avx512='false' -Denable_cuda='true' -Denable_nvcc='true' . build
|
||||||
meson compile -C build --jobs "$_jobs"
|
meson compile -C build --jobs "$_jobs"
|
||||||
}
|
}
|
||||||
|
|
||||||
check() {
|
check() {
|
||||||
meson test -C build
|
meson test -C "${pkgname}-${pkgver}/libvmaf/build"
|
||||||
}
|
}
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
meson install -C build --destdir "$pkgdir"
|
meson install -C "${pkgname}-${pkgver}/libvmaf/build" --destdir "$pkgdir"
|
||||||
install -D -m644 "${pkgname}-${pkgver}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}"
|
install -D -m644 "${pkgname}-${pkgver}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}"
|
||||||
cp -dr --no-preserve='ownership' "${pkgname}-${pkgver}/model" "${pkgdir}/usr/share"
|
cp -dr --no-preserve='ownership' "${pkgname}-${pkgver}/model" "${pkgdir}/usr/share"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user