diff --git a/all.nix b/all.nix index 47fadc0..3c24b9b 100644 --- a/all.nix +++ b/all.nix @@ -1,25 +1,35 @@ let pkgs = import ./nixpkgs.nix { config = { allowUnfree = true; }; }; - pure = pkgs.recurseIntoAttrs (pkgs.callPackage ./nixGL.nix { - nvidiaVersion = "440.82"; - nvidiaHash = "edd415acf2f75a659e0f3b4f27c1fab770cf21614e84a18152d94f0d004a758e"; + pure565 = pkgs.recurseIntoAttrs (pkgs.callPackage ./nixGL.nix { + nvidiaVersion = "565.77"; + nvidiaHash = "sha256-CnqnQsRrzzTXZpgkAtF7PbH9s7wbiTRNcM0SPByzFHw="; }); - versionFile440 = (pkgs.callPackage ./nixGL.nix { - nvidiaVersionFile = pkgs.writeText "nvidia-version-440.82" '' - NVRM version: NVIDIA UNIX x86_64 Kernel Module 440.82 Wed Apr 1 20:04:33 UTC 2020 + pure550 = pkgs.recurseIntoAttrs (pkgs.callPackage ./nixGL.nix { + nvidiaVersion = "550.135"; + nvidiaHash = "sha256-ESBH9WRABWkOdiFBpVtCIZXKa5DvQCSke61MnoGHiKk="; + }); + + versionFile550 = (pkgs.callPackage ./nixGL.nix { + nvidiaVersionFile = pkgs.writeText "nvidia-version-550.135" '' + NVRM version: NVIDIA UNIX x86_64 Kernel Module 550.135 Wed Apr 1 20:04:33 UTC 2020 GCC version: gcc version 9.3.0 (Arch Linux 9.3.0-1) ''; }); - versionFile510 = (pkgs.callPackage ./nixGL.nix { - nvidiaVersionFile = pkgs.writeText "nvidia-version-510.54" '' - NVRM version: NVIDIA UNIX x86_64 Kernel Module 510.54 Wed Apr 1 20:04:33 UTC 2020 - GCC version: gcc version 9.3.0 (Arch Linux 9.3.0-1) + versionFile565 = (pkgs.callPackage ./nixGL.nix { + nvidiaVersionFile = pkgs.writeText "nvidia-version-565.77" '' + NVRM version: NVIDIA UNIX Open Kernel Module for x86_64 565.77 Release Build (nixbld@) Sun Feb 9 11:08:26 UTC 2025 + GCC version: gcc version 13.3.0 (GCC) ''; }); + in - (with pure; [nixGLIntel nixVulkanNvidia nixGLNvidia nixVulkanIntel]) - ++ (with versionFile440.auto; [nixGLNvidia nixGLDefault nixVulkanNvidia]) - ++ (with versionFile510.auto; [nixGLNvidia nixGLDefault nixVulkanNvidia]) + (with pure565; [nixGLIntel nixVulkanNvidia nixGLNvidia nixVulkanIntel]) + ++ + (with pure550; [nixGLIntel nixVulkanNvidia nixGLNvidia nixVulkanIntel]) + ++ + (with versionFile550.auto; [nixGLNvidia nixGLDefault nixVulkanNvidia]) + ++ + (with versionFile565.auto; [nixGLNvidia nixGLDefault nixVulkanNvidia]) diff --git a/nixGL.nix b/nixGL.nix index f0328d3..706fdf2 100644 --- a/nixGL.nix +++ b/nixGL.nix @@ -13,7 +13,7 @@ nvidiaVersionFile ? null, # This is one by default, you can switch it to off if you want to reduce a # bit the size of nixGL closure. enable32bits ? stdenv.hostPlatform.isx86 -, stdenv, writeTextFile, shellcheck, pcre, runCommand, linuxPackages +, stdenv, writeTextFile, shellcheck, pcre, runCommand, runCommandLocal, linuxPackages , fetchurl, lib, runtimeShell, bumblebee, libglvnd, vulkan-validation-layers , mesa, libvdpau-va-gl, intel-media-driver, pkgsi686Linux, driversi686Linux , zlib, libdrm, xorg, wayland, gcc, zstd }: @@ -218,12 +218,10 @@ let # # builtins.readFile is not able to read /proc files. See # https://github.com/NixOS/nix/issues/3539. - runCommand "impure-nvidia-version-file" { + runCommandLocal "impure-nvidia-version-file" { # To avoid sharing the build result over time or between machine, # Add an impure parameter to force the rebuild on each access. time = builtins.currentTime; - preferLocalBuild = true; - allowSubstitutes = false; } "cp /proc/driver/nvidia/version $out 2> /dev/null || touch $out"; # The nvidia version. Either fixed by the `nvidiaVersion` argument, or @@ -234,7 +232,7 @@ let # Get if from the nvidiaVersionFile let data = builtins.readFile _nvidiaVersionFile; - versionMatch = builtins.match ".*Module ([0-9.]+) .*" data; + versionMatch = builtins.match ".*NVIDIA UNIX.*Kernel Module.* ([0-9]+\\.[.0-9]+) .*" data; in if versionMatch != null then builtins.head versionMatch else null; autoNvidia = nvidiaPackages {version = nvidiaVersionAuto; }; diff --git a/nixpkgs.nix b/nixpkgs.nix index dfede53..bdc62d8 100644 --- a/nixpkgs.nix +++ b/nixpkgs.nix @@ -1,5 +1,5 @@ let - rev = "4f6d8095fd51"; + rev = "10e687235226880ed5e9f33f1ffa71fe60f2638a"; in import (fetchTarball { url = "https://github.com/nixos/nixpkgs/archive/${rev}.tar.gz";