diff --git a/home/users/toothpick/default.nix b/home/users/toothpick/default.nix index f6997451..4cb0a61f 100644 --- a/home/users/toothpick/default.nix +++ b/home/users/toothpick/default.nix @@ -27,6 +27,7 @@ GBM_BACKEND = "nvidia-drm"; __GLX_VENDOR_LIBRARY_NAME = "nvidia"; NVD_BACKEND = "direct"; + VK_DRIVER_FILES = "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json"; }; }; # disable manuals as nmd fails to build often diff --git a/system/modules/hardware/graphics/amd/default.nix b/system/modules/hardware/graphics/amd/default.nix index db381328..57392f97 100644 --- a/system/modules/hardware/graphics/amd/default.nix +++ b/system/modules/hardware/graphics/amd/default.nix @@ -24,7 +24,7 @@ in { # mesa mesa - # vulkan + vulkan # vulkan-tools # vulkan-loader # vulkan-validation-layers diff --git a/system/modules/hardware/graphics/nvidia/default.nix b/system/modules/hardware/graphics/nvidia/default.nix index dc144709..6e45aed7 100644 --- a/system/modules/hardware/graphics/nvidia/default.nix +++ b/system/modules/hardware/graphics/nvidia/default.nix @@ -4,6 +4,19 @@ lib, ... }: let + vulkanDriverFiles = [ + "${config.hardware.nvidia.package}/share/vulkan/icd.d/nvidia_icd.x86_64.json" + "${config.hardware.nvidia.package.lib32}/share/vulkan/icd.d/nvidia_icd.i686.json" + ]; + nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" '' + export __NV_PRIME_RENDER_OFFLOAD=1 + export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 + export __GLX_VENDOR_LIBRARY_NAME=nvidia + export __VK_LAYER_NV_optimus=NVIDIA_only + export VK_DRIVER_FILES="${builtins.concatStringsSep ":" vulkanDriverFiles}" + exec "$@" + ''; + inherit (lib) types mkIf mkEnableOption mkOption; cfg = config.modules.hardware.graphics.nvidia; in { @@ -29,7 +42,12 @@ in { libvdpau-va-gl intel-media-driver nvidia-vaapi-driver - egl-wayland + nvidia-offload + vulkan-tools + ]; + extraPackages32 = with pkgs.pkgsi686Linux; [ + vaapiVdpau + libvdpau-va-gl ]; }; nvidia = { @@ -42,7 +60,7 @@ in { enable = false; finegrained = false; }; - open = false; + open = true; nvidiaSettings = true; }; };