Initial commit uwu

This commit is contained in:
emily 2024-11-04 14:02:36 +01:00
commit caff4544d5
Signed by: emily
GPG key ID: F6F4C66207FCF995
21 changed files with 1054 additions and 0 deletions

27
flake.lock Normal file
View file

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1730531603,
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

38
flake.nix Normal file
View file

@ -0,0 +1,38 @@
{
description = "vapoursynth-nix";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
nixConfig = {
allow-import-form-derivation = true;
extra-substituters = [
"https://cache.kyouma.net"
];
extra-trusted-public-keys = [
"cache.kyouma.net:Frjwu4q1rnwE/MnSTmX9yx86GNA/z3p/oElGvucLiZg="
];
};
outputs = { self, nixpkgs, ... }@inputs: let
inherit (nixpkgs) lib;
buildPlatforms = import ./lib/platforms.nix inputs;
eachSystem = uwu: lib.mapAttrs uwu buildPlatforms;
in {
packages = eachSystem (system: platform: let
pkgs = import nixpkgs {
inherit system;
config = {
allowUnfree = true;
allowUnsupportedSystem = true;
allowBroken = true;
};
};
in lib.filterAttrs (_: pkg: lib.meta.availableOn platform pkg) (
import ./pkgs/default.nix { inherit pkgs lib; })
);
hydraJobs = { inherit (self) packages; };
};
}

15
lib/platforms.nix Normal file
View file

@ -0,0 +1,15 @@
{ nixpkgs, ... }: let
inherit (nixpkgs) lib;
in lib.mapAttrs (system: platform: lib.systems.elaborate platform) {
"x86_64-linux" = {
system = "x86_64-linux";
};
"aarch64-linux" = {
system = "aarch64-linux";
};
"riscv64-linux" = {
system = "riscv64-linux";
};
}

24
pkgs/default.nix Normal file
View file

@ -0,0 +1,24 @@
{ lib, pkgs, }: let
inherit (pkgs) callPackage;
load = baseDir: lib.mapAttrs (name: _: callPackage "${baseDir}/${name}/package.nix" {}) (
lib.filterAttrs (_: type: type == "directory") (builtins.readDir baseDir)
);
in (load ./.) // {
vapoursynth-bm3dcpu = callPackage ./vapoursynth-bm3dcuda/package.nix {
cudaSupport = false;
cpuSupport = true;
};
vs-dfttest2cuda = callPackage ./vs-dfttest2/package.nix {
cudaSupport = true;
};
vs-dfttest2gcc = callPackage ./vs-dfttest2/package.nix {
genericVector = true;
};
vs-dfttest2hip = callPackage ./vs-dfttest2/package.nix {
rocmSupport = true;
};
}

View file

@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
hostPlatform,
cmake,
pkg-config,
vapoursynth,
tbb,
zimg,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "neo_dfttest";
version = "8";
src = fetchFromGitHub {
owner = "HomeOfAviSynthPlusEvolution";
repo = "neo_dfttest";
rev = "refs/tags/r${finalAttrs.version}";
hash = "sha256-qlgg57Ysr/iwZz6RjJcLEYN/eRaG/LB3dIExY9FyXls=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
vapoursynth
tbb
zimg
];
cmakeFlags = [ (lib.cmakeFeature "VERSION" "r${finalAttrs.version}") ];
postPatch = ''
sed -E -i '/^find_package\(Git /,+2d' CMakeLists.txt
rm -rf include/vapoursynth
'';
installPhase = ''
runHook preInstall
install -D -t "$out/lib/vapoursynth" libneo-dfttest${hostPlatform.extensions.sharedLibrary}
runHook postInstall
'';
meta = {
description = "Plugin for VapourSynth: neo_dfttest";
homepage = "https://github.com/HomeOfAviSynthPlusEvolution/neo_dfttest";
license = with lib.licenses; [
gpl3Plus
gpl2Plus
];
maintainers = with lib.maintainers; [ snaki ];
platforms = lib.platforms.x86_64;
};
})

View file

@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
hostPlatform,
cmake,
pkg-config,
vapoursynth,
tbb,
zimg,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "neo_f3kdb";
version = "9";
src = fetchFromGitHub {
owner = "HomeOfAviSynthPlusEvolution";
repo = "neo_f3kdb";
rev = "refs/tags/r${finalAttrs.version}";
hash = "sha256-MIvKjsemDeyv9qonuJbns0Dau8BjFQ1REppccs7s9JU=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
vapoursynth
tbb
zimg
];
cmakeFlags = [ (lib.cmakeFeature "VERSION" "r${finalAttrs.version}") ];
postPatch = ''
sed -E -i '/^find_package\(Git /,+2d' CMakeLists.txt
rm -rf include/vapoursynth
'';
installPhase = ''
runHook preInstall
install -D -t "$out/lib/vapoursynth" libneo-f3kdb${hostPlatform.extensions.sharedLibrary}
runHook postInstall
'';
meta = {
description = "Plugin for VapourSynth: neo_f3kdb";
homepage = "https://github.com/HomeOfAviSynthPlusEvolution/neo_f3kdb";
license = with lib.licenses; [
gpl3Plus
gpl2Plus
];
maintainers = with lib.maintainers; [ snaki ];
platforms = lib.platforms.x86_64;
};
})

View file

@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
cmake,
pkg-config,
vapoursynth,
ffmpeg,
xxHash,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vapoursynth-bestsource";
version = "6";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
fetchSubmodules = true;
owner = "vapoursynth";
repo = "bestsource";
rev = "refs/tags/R${finalAttrs.version}";
hash = "sha256-ICkdIomlkHUdK6kMeui45fvUn4OMxSrP8svB2IN+GCg=";
};
nativeBuildInputs = [
meson
ninja
cmake
pkg-config
];
buildInputs = [
vapoursynth
ffmpeg
xxHash
];
postPatch = ''
substituteInPlace meson.build \
--replace-fail "vapoursynth_dep.get_variable(pkgconfig: 'libdir')" "get_option('libdir')"
'';
meta = {
description = "Wrapper library around FFmpeg that ensures sample and frame accurate access to audio and video";
homepage = "https://github.com/vapoursynth/bestsource";
license = with lib.licenses; [
mit
wtfpl
gpl2Plus
];
platforms = lib.platforms.x86_64;
maintainers = with lib.maintainers; [ snaki ];
};
})

View file

@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
vapoursynth,
fftwSinglePrec,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vapoursynth-bm3d";
version = "9";
src = fetchFromGitHub {
owner = "HomeOfVapourSynthEvolution";
repo = "VapourSynth-BM3D";
rev = "refs/tags/r${finalAttrs.version}";
hash = "sha256-i7Kk7uFt2Wo/EWpVkGyuYgGZxBuQgOT3JM+WCFPHVrc=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
vapoursynth
fftwSinglePrec
];
postPatch = ''
substituteInPlace meson.build \
--replace-fail "vapoursynth_dep.get_pkgconfig_variable('libdir')" "get_option('libdir')"
'';
meta = {
inherit (vapoursynth.meta) platforms;
description = "Plugin for VapourSynth: bm3d";
homepage = "https://github.com/HomeOfVapourSynthEvolution/VapourSynth-BM3D";
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ snaki ];
};
})

View file

@ -0,0 +1,56 @@
{
lib,
gcc12Stdenv,
fetchFromGitHub,
cmake,
cudaPackages_12_3,
vapoursynth,
cudaSupport ? true,
cpuSupport ? false,
}:
# gcc13 producdes weird artifacts
gcc12Stdenv.mkDerivation (finalAttrs: {
pname = "vapoursynth-bm3dcuda";
version = "2.14";
src = fetchFromGitHub {
owner = "WolframRhodium";
repo = "VapourSynth-BM3DCUDA";
rev = "refs/tags/R${finalAttrs.version}";
hash = "sha256-Vcg1RaV0lOMAK0LCAJBMMeeSC0HoKigHwebzH/AcH2g=";
};
nativeBuildInputs =
[ cmake ]
++ lib.optionals cudaSupport [
cudaPackages_12_3.cuda_nvcc
cudaPackages_12_3.cuda_nvrtc
];
buildInputs = lib.optionals cudaSupport [ cudaPackages_12_3.cuda_cudart ];
# Taken from https://github.com/WolframRhodium/VapourSynth-BM3DCUDA/blob/main/.github/workflows/linux.yml
preConfigure =
''
cmakeFlagsArray+=(${lib.escapeShellArg (lib.cmakeFeature "CMAKE_CXX_FLAGS" "-ffast-math${lib.optionalString cpuSupport " -march=x86-64-v3"}")})
''
+ lib.optionalString cudaSupport ''
cmakeFlagsArray+=(${lib.escapeShellArg (lib.cmakeFeature "CMAKE_CUDA_FLAGS" "--use_fast_math -Wno-deprecated-gpu-targets")})
'';
cmakeFlags = [
(lib.cmakeFeature "VAPOURSYNTH_INCLUDE_DIRECTORY" "${vapoursynth}/include/vapoursynth")
(lib.cmakeFeature "CMAKE_INSTALL_LIBDIR" "lib/vapoursynth")
(lib.cmakeBool "ENABLE_CUDA" cudaSupport)
(lib.cmakeBool "ENABLE_CPU" cpuSupport)
];
meta = {
description = "Plugin for VapourSynth: bm3dcuda bm3dcpu";
homepage = "https://github.com/WolframRhodium/VapourSynth-BM3DCUDA";
license = with lib.licenses; [ gpl2Plus ];
maintainers = with lib.maintainers; [ snaki ];
platforms = with lib.platforms; if cpuSupport then x86_64 else all;
};
})

View file

@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
rocmPackages,
vapoursynth,
gpuTargets ? [
"gfx1010"
"gfx1011"
"gfx1012"
"gfx1030"
"gfx1031"
"gfx1032"
"gfx1033"
"gfx1034"
"gfx1035"
"gfx1036"
"gfx1100"
"gfx1101"
"gfx1102"
"gfx1103"
],
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vapoursynth-bm3dhip";
version = "2.14";
src = fetchFromGitHub {
owner = "WolframRhodium";
repo = "VapourSynth-BM3DCUDA";
rev = "refs/tags/R${finalAttrs.version}";
hash = "sha256-Vcg1RaV0lOMAK0LCAJBMMeeSC0HoKigHwebzH/AcH2g=";
};
nativeBuildInputs = [
cmake
rocmPackages.clr
];
buildInputs = [ rocmPackages.clr ];
# Taken from https://github.com/WolframRhodium/VapourSynth-BM3DCUDA/blob/main/.github/workflows/linux.yml
preConfigure = ''
cmakeFlagsArray=(
${lib.escapeShellArg (lib.cmakeFeature "CMAKE_CXX_FLAGS" "-ffast-math -munsafe-fp-atomics")}
)
'';
cmakeFlags = [
(lib.cmakeFeature "VAPOURSYNTH_INCLUDE_DIRECTORY" "${vapoursynth}/include/vapoursynth")
(lib.cmakeFeature "CMAKE_INSTALL_LIBDIR" "lib/vapoursynth")
(lib.cmakeFeature "CMAKE_CXX_COMPILER" "hipcc")
(lib.cmakeFeature "GPU_TARGETS" (lib.concatStringsSep ";" gpuTargets))
(lib.cmakeBool "ENABLE_CUDA" false)
(lib.cmakeBool "ENABLE_CPU" false)
(lib.cmakeBool "ENABLE_HIP" true)
];
meta = {
description = "Plugin for VapourSynth: bm3dhip";
homepage = "https://github.com/WolframRhodium/VapourSynth-BM3DCUDA";
license = with lib.licenses; [ gpl2Plus ];
maintainers = with lib.maintainers; [ snaki ];
platforms = with lib.platforms; aarch64 ++ x86_64;
};
})

View file

@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
vapoursynth,
fftwSinglePrec,
}:
stdenv.mkDerivation {
pname = "vapoursynth-dfttest";
version = "unstable-2022-04-15";
src = fetchFromGitHub {
owner = "HomeOfVapourSynthEvolution";
repo = "VapourSynth-DFTTest";
rev = "bc5e0186a7f309556f20a8e9502f2238e39179b8";
hash = "sha256-HGk9yrs6T3LAP0I5GPt9b4LwldXtQDG277ffX6xMr/4=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
vapoursynth
fftwSinglePrec
];
postPatch = ''
substituteInPlace meson.build \
--replace-fail "vapoursynth_dep.get_pkgconfig_variable('libdir')" "get_option('libdir')"
'';
meta = {
description = "Plugin for VapourSynth: dfttest";
homepage = "https://github.com/HomeOfVapourSynthEvolution/VapourSynth-DFTTest";
license = with lib.licenses; [
gpl3Plus
asl20
];
maintainers = with lib.maintainers; [ snaki ];
platforms = lib.platforms.x86_64;
};
}

View file

@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
boost,
vapoursynth,
opencl-headers,
ocl-icd,
openclSupport ? true,
}:
stdenv.mkDerivation {
pname = "vapoursynth-eedi3";
version = "unstable-2019-09-30";
src = fetchFromGitHub {
owner = "HomeOfVapourSynthEvolution";
repo = "VapourSynth-EEDI3";
rev = "d11bdb37c7a7118cd095b53d9f8fbbac02a06ac0";
hash = "sha256-MIUf6sOnJ2uqGw3ixEHy1ijzlLFkQauwtm1vfgmYmcg=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs =
[
boost
vapoursynth
]
++ lib.optionals openclSupport [
ocl-icd
opencl-headers
];
postPatch = ''
substituteInPlace meson.build \
--replace-fail "vapoursynth_dep.get_pkgconfig_variable('libdir')" "get_option('libdir')"
'';
mesonFlags = [ (lib.mesonBool "opencl" openclSupport) ];
meta = {
description = "Filter for VapourSynth";
homepage = "https://github.com/HomeOfVapourSynthEvolution/VapourSynth-EEDI3";
license = with lib.licenses; [ gpl2Plus ];
maintainers = with lib.maintainers; [ snaki ];
platforms = lib.platforms.x86_64;
};
}

View file

@ -0,0 +1,41 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
vapoursynth,
}:
stdenv.mkDerivation {
pname = "vapoursynth-hqdn3d";
version = "unstable-2023-07-09";
src = fetchFromGitHub {
owner = "Hinterwaeldlers";
repo = "vapoursynth-hqdn3d";
rev = "eb820cb23f7dc47eb67ea95def8a09ab69251d30";
hash = "sha256-BObHZs7GQW6UFUwohII1MXHtk5ooGh/LfZ3ZsqoPQBU=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [ vapoursynth ];
configureFlags = [ "--libdir=$(out)/lib/vapoursynth" ];
postInstall = ''
rm -f $out/lib/vapoursynth/*.la
'';
meta = {
inherit (vapoursynth.meta) platforms;
description = "Plugin for VapourSynth: hqdn3d";
homepage = "https://github.com/Hinterwaeldlers/vapoursynth-hqdn3d";
license = with lib.licenses; [ gpl2Plus ];
maintainers = with lib.maintainers; [ snaki ];
};
}

View file

@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
boost,
vapoursynth,
opencl-headers,
ocl-icd,
}:
stdenv.mkDerivation {
pname = "vapoursynth-knlmeanscl";
version = "unstable-2023-06-05";
src = fetchFromGitHub {
owner = "Khanattila";
repo = "KNLMeansCL";
rev = "ca424fa91d1e16ec011f7db9c3ba0d1e76ed7850";
hash = "sha256-co8Jaup3bvvJaKw830CqCkAKHRsT5rx/xAYMbGhrMRk=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
boost
vapoursynth
ocl-icd
opencl-headers
];
postPatch = ''
rm -rf KNLMeansCL/{avi,vapour}synth
sed -E -i '/NLMAvisynth\.(h|cpp)/d' meson.build
'';
meta = {
description = "Plugin for VapourSynth: knlmeanscl";
homepage = "https://github.com/Khanattila/KNLMeansCL";
license = with lib.licenses; [ gpl3Plus ];
maintainers = with lib.maintainers; [ snaki ];
platforms = lib.platforms.x86_64;
};
}

View file

@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
vapoursynth,
yasm,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vapoursynth-nnedi3";
version = "12";
src = fetchFromGitHub {
owner = "dubhater";
repo = "vapoursynth-nnedi3";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-jd/PCXhbCZGMsoXjekbeqMSRVBJAy4INdpkTbZFjVO0=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
vapoursynth
yasm
];
configureFlags = [ "--libdir=$(out)/lib/vapoursynth" ];
postInstall = ''
rm -f $out/lib/vapoursynth/*.la
'';
meta = {
description = "Filter for VapourSynth";
homepage = "https://github.com/dubhater/vapoursynth-nnedi3";
license = with lib.licenses; [ gpl2Plus ];
maintainers = with lib.maintainers; [ snaki ];
platforms = with lib.platforms; x86_64 ++ aarch64;
};
})

View file

@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
boost,
vapoursynth,
opencl-headers,
ocl-icd,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vapoursynth-nnedi3cl";
version = "8";
src = fetchFromGitHub {
owner = "HomeOfVapourSynthEvolution";
repo = "VapourSynth-NNEDI3CL";
rev = "refs/tags/r${finalAttrs.version}";
hash = "sha256-zW/qEtZTDJOTarXbXhv+nks25eePutLDpLck4TuMKUk=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
boost
vapoursynth
ocl-icd
opencl-headers
];
postPatch = ''
substituteInPlace meson.build \
--replace-fail "vapoursynth_dep.get_pkgconfig_variable('libdir')" "get_option('libdir')"
'';
meta = {
description = "Filter for VapourSynth";
homepage = "https://github.com/HomeOfVapourSynthEvolution/VapourSynth-NNEDI3CL";
license = with lib.licenses; [ gpl2Plus ];
maintainers = with lib.maintainers; [ snaki ];
platforms = lib.platforms.x86_64;
};
})

View file

@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
mkl,
vapoursynth,
zimg,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vapoursynth-wnnm";
version = "unstable-2023-07-07";
srcs = [
(fetchFromGitHub {
owner = "WolframRhodium";
repo = "VapourSynth-WNNM";
rev = "a8977b4365841bb27c232383cd9a306f70ef9f99";
name = "${finalAttrs.pname}-source";
hash = "sha256-B4jvl+Lu724QofDbKQObdcpQdlb8KQ2szAp780J9SUY=";
})
(fetchFromGitHub {
owner = "vectorclass";
repo = "version2";
rev = "refs/tags/v2.02.01";
name = "vectorclass";
hash = "sha256-45qt0vGz6ibEmcoPZDOeroSivoVnFkvMEihjXJXa8lU=";
})
];
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
(mkl.override { enableStatic = true; })
vapoursynth
zimg
];
sourceRoot = "${finalAttrs.pname}-source";
preConfigure = ''
cmakeFlagsArray=(${lib.escapeShellArg (lib.cmakeFeature "CMAKE_CXX_FLAGS" "-ffast-math -mavx2 -mfma")})
'';
cmakeFlags = [
(lib.cmakeFeature "VCL_HOME" (toString (lib.last finalAttrs.srcs)))
(lib.cmakeFeature "MKL_LINK" "static")
(lib.cmakeFeature "MKL_INTERFACE" "lp64")
(lib.cmakeFeature "MKL_THREADING" "sequential")
];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "\''${VS_LIBDIR}" "lib"
'';
meta = {
description = "Plugin for VapourSynth: wnnm";
homepage = "https://github.com/WolframRhodium/VapourSynth-WNNM";
license = with lib.licenses; [
mit
asl20
];
maintainers = with lib.maintainers; [ snaki ];
platforms = lib.platforms.x86_64;
};
})

View file

@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitHub,
vapoursynth,
}:
stdenv.mkDerivation {
pname = "vapoursynth-znedi3";
version = "unstable-2023-07-09";
src = fetchFromGitHub {
fetchSubmodules = true;
owner = "sekrit-twc";
repo = "znedi3";
rev = "68dc130bc37615fd912d1dc1068261f00f54b146";
hash = "sha256-QC+hMMfp6XwW4PqsN6sip1Y7ttiYn/xuxq/pUg/trog=";
};
buildInputs = [ vapoursynth ];
postPatch = ''
rm -rf vsxx/vapoursynth
ln -s ${vapoursynth}/include/vapoursynth vsxx/vapoursynth
'';
makeFlags =
[ "CPPFLAGS=-DNNEDI3_WEIGHTS_PATH='\"$(out)/share/nnedi3/nnedi3_weights.bin\"'" ]
++ lib.optionals stdenv.hostPlatform.isx86 [
"X86=1"
"X86_AVX512=1"
];
installPhase = ''
runHook preInstall
install -D -t $out/lib/vapoursynth vsznedi3${stdenv.hostPlatform.extensions.sharedLibrary}
install -D -m644 -t $out/share/nnedi3 nnedi3_weights.bin
runHook postInstall
'';
meta = {
inherit (vapoursynth.meta) platforms;
description = "Filter for VapourSynth";
homepage = "https://github.com/sekrit-twc/znedi3";
license = with lib.licenses; [
gpl2Plus
wtfpl
lgpl21
];
maintainers = with lib.maintainers; [ snaki ];
};
}

View file

@ -0,0 +1,77 @@
{
lib,
gcc12Stdenv,
fetchFromGitHub,
cmake,
pkg-config,
cudaPackages_11_8,
rocmPackages,
vapoursynth,
zimg,
cudaSupport ? false,
rocmSupport ? false,
genericVector ? false,
}:
# Based on project's CI
gcc12Stdenv.mkDerivation (finalAttrs: {
pname = "vs-dfttest2";
version = "7";
src = fetchFromGitHub {
fetchSubmodules = true;
owner = "AmusementClub";
repo = "vs-dfttest2";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-6VFUVdCKSbdhjKBUacQXEN5IyB4crngglAM99h+hGxU=";
};
nativeBuildInputs =
[
cmake
pkg-config
]
++ lib.optionals cudaSupport [
cudaPackages_11_8.cuda_nvcc
cudaPackages_11_8.cuda_nvrtc
]
++ lib.optionals rocmSupport [ rocmPackages.clr ];
buildInputs =
[
vapoursynth
zimg
]
++ lib.optionals cudaSupport [
cudaPackages_11_8.cuda_cudart
cudaPackages_11_8.libcufft
]
++ lib.optionals rocmSupport [
rocmPackages.clr
rocmPackages.hipfft
];
cmakeFlags = [
(lib.cmakeFeature "CMAKE_CXX_FLAGS" "-ffast-math")
(lib.cmakeBool "ENABLE_CUDA" cudaSupport)
(lib.cmakeBool "ENABLE_HIP" rocmSupport)
(lib.cmakeBool "ENABLE_CPU" (!genericVector))
(lib.cmakeBool "ENABLE_GCC" genericVector)
];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "\''${VS_LIBDIR}" "lib"
'';
meta = {
description = "Plugin for VapourSynth: dfttest2";
homepage = "https://github.com/AmusementClub/vs-dfttest2";
license = with lib.licenses; [
gpl3
asl20
];
maintainers = with lib.maintainers; [ snaki ];
platforms = with lib.platforms; if genericVector then all else x86_64;
};
})

View file

@ -0,0 +1,52 @@
{
lib,
gcc12Stdenv,
fetchFromGitHub,
cmake,
pkg-config,
cudaPackages_11_8,
vapoursynth,
zimg,
}:
gcc12Stdenv.mkDerivation (finalAttrs: {
pname = "vs-nlm-cuda";
version = "1";
src = fetchFromGitHub {
owner = "AmusementClub";
repo = "vs-nlm-cuda";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-VxIe3ec0Hxgcd6HTDbZ9zx6Ss0H2eOtRVLq1ftIwRPY=";
};
nativeBuildInputs = [
cmake
pkg-config
cudaPackages_11_8.cuda_nvcc
cudaPackages_11_8.cuda_nvrtc
];
buildInputs = [
cudaPackages_11_8.cuda_cudart
vapoursynth
zimg
];
preConfigure = ''
cmakeFlagsArray=(${lib.escapeShellArg (lib.cmakeFeature "CMAKE_CUDA_FLAGS" "--use_fast_math -Wno-deprecated-gpu-targets")})
'';
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "\''${VS_LIBDIR}" "lib"
'';
meta = {
description = "Plugin for VapourSynth: vs-nlm-cuda";
homepage = "https://github.com/AmusementClub/vs-nlm-cuda";
license = with lib.licenses; [ gpl3 ];
maintainers = with lib.maintainers; [ snaki ];
platforms = lib.platforms.all;
};
})

View file

@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitHub,
hostPlatform,
cmake,
pkg-config,
ispc,
vapoursynth,
zimg,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vs-nlm-ispc";
version = "2";
src = fetchFromGitHub {
owner = "AmusementClub";
repo = "vs-nlm-ispc";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-lP/6a83Sy+R4umt2GiZnB/to/x6jjGOChgUFQZQUwz4=";
};
nativeBuildInputs = [
cmake
pkg-config
ispc
];
buildInputs = [
vapoursynth
zimg
];
cmakeFlags = [
(lib.cmakeFeature "CMAKE_ISPC_INSTRUCTION_SETS" (
if hostPlatform.isx86_64 then "sse2-i32x4;avx1-i32x4;avx2-i32x8" else "neon-i32x4"
))
(lib.cmakeFeature "CMAKE_ISPC_FLAGS" "--opt=fast-math")
];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "\''${VS_LIBDIR}" "lib"
'';
meta = {
description = "Plugin for VapourSynth: vs-nlm-ispc";
homepage = "https://github.com/AmusementClub/vs-nlm-ispc";
license = with lib.licenses; [ gpl3 ];
maintainers = with lib.maintainers; [ snaki ];
platforms = with lib.platforms; x86_64 ++ aarch64;
};
})