diff options
| author | Fuwn <[email protected]> | 2024-09-04 19:57:20 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-09-04 19:57:20 -0700 |
| commit | 8b5e5079e5fd00eadf2e3926c104e4ecf99a5779 (patch) | |
| tree | d35acd86220ae3ffa521677d55acb37e9436ba64 /modules/multimedia/video | |
| parent | styles (diff) | |
| download | nixos-config-8b5e5079e5fd00eadf2e3926c104e4ecf99a5779.tar.xz nixos-config-8b5e5079e5fd00eadf2e3926c104e4ecf99a5779.zip | |
refac
Diffstat (limited to 'modules/multimedia/video')
| -rw-r--r-- | modules/multimedia/video/default.nix | 13 | ||||
| -rw-r--r-- | modules/multimedia/video/graphics.nix | 21 | ||||
| -rw-r--r-- | modules/multimedia/video/libva.nix | 7 | ||||
| -rw-r--r-- | modules/multimedia/video/nvidia.nix | 37 | ||||
| -rw-r--r-- | modules/multimedia/video/vulkan.nix | 9 |
5 files changed, 87 insertions, 0 deletions
diff --git a/modules/multimedia/video/default.nix b/modules/multimedia/video/default.nix new file mode 100644 index 0000000..1157479 --- /dev/null +++ b/modules/multimedia/video/default.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: +{ + imports = [ + ./graphics.nix + ./libva.nix + ./nvidia.nix + ./vulkan.nix + ]; + + environment.systemPackages = [ + pkgs.mediastreamer-openh264 + ]; +} diff --git a/modules/multimedia/video/graphics.nix b/modules/multimedia/video/graphics.nix new file mode 100644 index 0000000..13da295 --- /dev/null +++ b/modules/multimedia/video/graphics.nix @@ -0,0 +1,21 @@ +{ pkgs, ... }: +{ + hardware.graphics = { + enable = true; + enable32Bit = true; + + extraPackages = with pkgs; [ + nvidia-vaapi-driver + vaapiVdpau + libvdpau-va-gl + ]; + + extraPackages32 = with pkgs; [ + nvidia-vaapi-driver + vaapiVdpau + libvdpau-va-gl + ]; + }; + + environment.systemPackages = [ pkgs.mesa ]; +} diff --git a/modules/multimedia/video/libva.nix b/modules/multimedia/video/libva.nix new file mode 100644 index 0000000..d420495 --- /dev/null +++ b/modules/multimedia/video/libva.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ + libva + libva-utils + ]; +} diff --git a/modules/multimedia/video/nvidia.nix b/modules/multimedia/video/nvidia.nix new file mode 100644 index 0000000..bc8cb22 --- /dev/null +++ b/modules/multimedia/video/nvidia.nix @@ -0,0 +1,37 @@ +{ pkgs, config, ... }: +{ + environment = { + systemPackages = with pkgs; [ + nvidia-container-toolkit + nvidia-docker + ]; + + shellAliases.nvidia-settings = "nvidia-settings --config='$XDG_CONFIG_HOME'/nvidia/settings"; + }; + + boot = { + blacklistedKernelModules = [ "nouveau" ]; + + kernelParams = [ + "nvidia-drm.fbdev=1" + "nvidia.NVreg_PreserveVideoMemoryAllocations=1" + ]; + }; + + hardware = { + nvidia-container-toolkit.enable = true; + + nvidia = { + modesetting.enable = true; + open = false; + nvidiaSettings = true; + package = config.boot.kernelPackages.nvidiaPackages.production; + forceFullCompositionPipeline = true; + + powerManagement = { + enable = true; + finegrained = false; + }; + }; + }; +} diff --git a/modules/multimedia/video/vulkan.nix b/modules/multimedia/video/vulkan.nix new file mode 100644 index 0000000..be37e0e --- /dev/null +++ b/modules/multimedia/video/vulkan.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ + vulkan-loader + vulkan-validation-layers + vulkan-tools + vulkan-extension-layer + ]; +} |