use nvidia-vaapi-driver for video decoding
This commit is contained in:
parent
5066c02a58
commit
78aac4f123
@ -2,6 +2,53 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.de;
|
cfg = config.de;
|
||||||
|
|
||||||
|
nv-codec-headers-11-1-5-1 = pkgs.stdenv.mkDerivation rec {
|
||||||
|
pname = "nv-codec-headers";
|
||||||
|
version = "11.1.5.1";
|
||||||
|
|
||||||
|
src = pkgs.fetchgit {
|
||||||
|
url = "https://git.videolan.org/git/ffmpeg/nv-codec-headers.git";
|
||||||
|
rev = "n${version}";
|
||||||
|
sha256 = "yTOKLjyYLxT/nI1FBOMwHpkDhfuua3+6Z5Mpb7ZrRhU=";
|
||||||
|
};
|
||||||
|
|
||||||
|
makeFlags = [
|
||||||
|
"PREFIX=$(out)"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
nvidia-vaapi-driver = pkgs.stdenv.mkDerivation rec {
|
||||||
|
pname = "nvidia-vaapi-driver";
|
||||||
|
version = "0.0.5";
|
||||||
|
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "elFarto";
|
||||||
|
repo = pname;
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "2bycqKolVoaHK64XYcReteuaON9TjzrFhaG5kty28YY=";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./use-meson-v57.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
meson
|
||||||
|
cmake
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
nv-codec-headers-11-1-5-1
|
||||||
|
libva
|
||||||
|
gst_all_1.gstreamer
|
||||||
|
gst_all_1.gst-plugins-bad
|
||||||
|
libglvnd
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
in {
|
in {
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
# chromium with specific extensions + settings
|
# chromium with specific extensions + settings
|
||||||
@ -31,16 +78,20 @@ in {
|
|||||||
chromium = pkgs.chromium.override {
|
chromium = pkgs.chromium.override {
|
||||||
gnomeKeyringSupport = true;
|
gnomeKeyringSupport = true;
|
||||||
enableWideVine = true;
|
enableWideVine = true;
|
||||||
|
# ungoogled = true;
|
||||||
commandLineArgs = "--use-vulkan --use-gl=desktop --enable-zero-copy --enable-hardware-overlays --enable-features=VaapiVideoDecoder,CanvasOopRasterization --ignore-gpu-blocklist --enable-accelerated-mjpeg-decode --enable-accelerated-video --enable-native-gpu-memory-buffers --enable-gpu-rasterization";
|
commandLineArgs = "--use-vulkan --use-gl=desktop --enable-zero-copy --enable-hardware-overlays --enable-features=VaapiVideoDecoder,CanvasOopRasterization --ignore-gpu-blocklist --enable-accelerated-mjpeg-decode --enable-accelerated-video --enable-native-gpu-memory-buffers --enable-gpu-rasterization";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
# todo vulkan in chrome
|
||||||
|
# todo video encoding in chrome
|
||||||
hardware.opengl = {
|
hardware.opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||||
vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||||
vaapiVdpau
|
# vaapiVdpau
|
||||||
libvdpau-va-gl
|
libvdpau-va-gl
|
||||||
|
nvidia-vaapi-driver
|
||||||
];
|
];
|
||||||
extraPackages32 = with pkgs.pkgsi686Linux; [ vaapiIntel ];
|
extraPackages32 = with pkgs.pkgsi686Linux; [ vaapiIntel ];
|
||||||
};
|
};
|
||||||
|
22
common/pc/use-meson-v57.patch
Normal file
22
common/pc/use-meson-v57.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
diff --git a/meson.build b/meson.build
|
||||||
|
index dace367..8c0e290 100644
|
||||||
|
--- a/meson.build
|
||||||
|
+++ b/meson.build
|
||||||
|
@@ -8,7 +8,7 @@ project(
|
||||||
|
'warning_level=0',
|
||||||
|
],
|
||||||
|
license: 'MIT',
|
||||||
|
- meson_version: '>= 0.58.0',
|
||||||
|
+ meson_version: '>= 0.57.0',
|
||||||
|
)
|
||||||
|
|
||||||
|
cc = meson.get_compiler('c')
|
||||||
|
@@ -47,8 +47,3 @@ shared_library(
|
||||||
|
gnu_symbol_visibility: 'hidden',
|
||||||
|
)
|
||||||
|
|
||||||
|
-meson.add_devenv(environment({
|
||||||
|
- 'NVD_LOG': '1',
|
||||||
|
- 'LIBVA_DRIVER_NAME': 'nvidia',
|
||||||
|
- 'LIBVA_DRIVERS_PATH': meson.project_build_root(),
|
||||||
|
-}))
|
@ -38,6 +38,7 @@ in
|
|||||||
# gpu
|
# gpu
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
services.xserver.logFile = "/var/log/Xorg.0.log";
|
services.xserver.logFile = "/var/log/Xorg.0.log";
|
||||||
|
hardware.nvidia.modesetting.enable = true; # for nvidia-vaapi-driver
|
||||||
hardware.nvidia.prime = {
|
hardware.nvidia.prime = {
|
||||||
# reverse_sync.enable = true;
|
# reverse_sync.enable = true;
|
||||||
# offload.enable = true;
|
# offload.enable = true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user