diff --git a/faucet/gui/default.nix b/faucet/gui/default.nix index 6aaaa21b..17643e98 100644 --- a/faucet/gui/default.nix +++ b/faucet/gui/default.nix @@ -3,10 +3,13 @@ , config , ... }: with lib; let cfg = config.faucet.gui; + + intel = cfg.type == "intel" || (cfg.type == "prime" && config.hardware.nvidia.prime.intelBusId != ""); + amdgpu = cfg.type == "amdgpu" || (cfg.type == "prime" && config.hardware.nvidia.prime.amdgpuBusId != ""); + nvidia = cfg.type == "nvidia" || cfg.type == "prime"; in { imports = [ ./plymouth.nix - ./va.nix ./greetd.nix ]; @@ -17,13 +20,6 @@ in { type = with types; enum [ "intel" "amdgpu" "nvidia" "prime" ]; description = "type of graphics acceleration used"; }; - prime = { - integrated = mkOption { - type = with types; str; - default = "i915"; - description = "integrated gpu driver"; - }; - }; }; config = mkIf cfg.enable { @@ -31,15 +27,23 @@ in { enable = true; driSupport = true; driSupport32Bit = true; + + # https://nixos.wiki/wiki/Accelerated_Video_Playback + extraPackages = with pkgs; optionals intel [ + intel-media-driver # LIBVA_DRIVER_NAME=iHD + vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium) + vaapiVdpau + libvdpau-va-gl + ] ++ optional nvidia nvidia-vaapi-driver; }; services.xserver.videoDrivers = - optional ((cfg.type == "nvidia") || (cfg.type == "prime")) "nvidia" ++ + optional nvidia "nvidia" ++ optional (cfg.type == "amdgpu") "amdgpu"; # inhibits default display manager services.xserver.displayManager.startx.enable = mkDefault true; - hardware.nvidia = mkIf ((cfg.type == "nvidia") || (cfg.type == "prime")) { + hardware.nvidia = mkIf nvidia { modesetting.enable = true; nvidiaSettings = true; @@ -56,7 +60,9 @@ in { }; boot.initrd.kernelModules = - optional (cfg.type == "amdgpu") "amdgpu" ++ - optional (cfg.type == "prime") cfg.prime.integrated; + optional amdgpu "amdgpu" ++ + optional intel "i915"; + + boot.kernelParams = optional intel "i915.fastboot=1"; }; } diff --git a/faucet/gui/plymouth.nix b/faucet/gui/plymouth.nix index 2408af6d..fc96c061 100644 --- a/faucet/gui/plymouth.nix +++ b/faucet/gui/plymouth.nix @@ -13,7 +13,6 @@ in mkIf cfg.enable { kernelParams = [ "quiet" "splash" - "i915.fastboot=1" "loglevel=3" "rd.systemd.show_status=false" "rd.udev.log_level=3" diff --git a/faucet/gui/va.nix b/faucet/gui/va.nix deleted file mode 100644 index e45495f9..00000000 --- a/faucet/gui/va.nix +++ /dev/null @@ -1,21 +0,0 @@ -# https://nixos.wiki/wiki/Accelerated_Video_Playback - -{ pkgs -, lib -, config -, ... }: with lib; let - cfg = config.faucet.gui; -in mkIf cfg.enable { - nixpkgs.config.packageOverrides = pkgs: { - vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; }; - }; - - hardware.opengl = { - extraPackages = with pkgs; optionals ((cfg.type == "intel") || (cfg.type == "prime")) [ - intel-media-driver # LIBVA_DRIVER_NAME=iHD - vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium) - vaapiVdpau - libvdpau-va-gl - ] ++ optional ((cfg.type == "nvidia") || (cfg.type == "prime")) nvidia-vaapi-driver; - }; -}