summary refs log tree commit diff
path: root/pkgs/development/libraries/mesa
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2019-05-18 14:57:53 -0500
committerGitHub <noreply@github.com>2019-05-18 14:57:53 -0500
commit872100cf4129758917dfef9c0ebe4d8e9fa1ce28 (patch)
tree60c4253aad76ebee41f6c32e39b616b4213a23c8 /pkgs/development/libraries/mesa
parentdbd1a4481fca373b4a13d052c7c45075d8d5f143 (diff)
parent888dba6a1d7c15eb6463abb991306105617671d8 (diff)
downloadnixpkgs-872100cf4129758917dfef9c0ebe4d8e9fa1ce28.tar
nixpkgs-872100cf4129758917dfef9c0ebe4d8e9fa1ce28.tar.gz
nixpkgs-872100cf4129758917dfef9c0ebe4d8e9fa1ce28.tar.bz2
nixpkgs-872100cf4129758917dfef9c0ebe4d8e9fa1ce28.tar.lz
nixpkgs-872100cf4129758917dfef9c0ebe4d8e9fa1ce28.tar.xz
nixpkgs-872100cf4129758917dfef9c0ebe4d8e9fa1ce28.tar.zst
nixpkgs-872100cf4129758917dfef9c0ebe4d8e9fa1ce28.zip
Merge branch 'staging' into release-cross-fixes
Diffstat (limited to 'pkgs/development/libraries/mesa')
-rw-r--r--pkgs/development/libraries/mesa/default.nix32
1 files changed, 16 insertions, 16 deletions
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 79947ae2f15..e68e1b572ee 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -27,22 +27,22 @@
 with stdenv.lib;
 
 let
-  defaultGalliumDrivers =
-    optionals (elem "drm" eglPlatforms)
-    (if stdenv.isAarch32
-    then ["virgl" "nouveau" "freedreno" "vc4" "etnaviv" "imx"]
-    else if stdenv.isAarch64
-    then ["virgl" "nouveau" "vc4" ]
-    else ["virgl" "svga" "i915" "r300" "r600" "radeonsi" "nouveau"]);
-  defaultDriDrivers =
-    optionals (elem "drm" eglPlatforms)
-    (if (stdenv.isAarch32 || stdenv.isAarch64)
-    then ["nouveau"]
-    else ["i915" "i965" "nouveau" "radeon" "r200"]);
-  defaultVulkanDrivers =
-    optionals stdenv.isLinux (if (stdenv.isAarch32 || stdenv.isAarch64)
-    then []
-    else ["intel"] ++ lib.optional enableRadv "radeon");
+  # platforms that have PCIe slots and thus can use most non-integrated GPUs
+  pciePlatform = !stdenv.hostPlatform.isAarch32 && !stdenv.hostPlatform.isAarch64;
+  defaultGalliumDrivers = optionals (elem "drm" eglPlatforms) ([ "virgl" ]
+    ++ lib.optionals pciePlatform [ "r300" "r600" "radeonsi" ]
+    ++ lib.optionals (pciePlatform || stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [ "nouveau" ]
+    ++ lib.optionals stdenv.hostPlatform.isx86 [ "i915" "svga" ]
+    ++ lib.optionals (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [ "vc4" ]
+    ++ lib.optionals stdenv.hostPlatform.isAarch64 [ "freedreno" "etnaviv" "imx" ]
+  );
+  defaultDriDrivers = optionals (elem "drm" eglPlatforms) ([ ]
+    ++ lib.optionals pciePlatform [ "radeon" "r200" ]
+    ++ lib.optionals (pciePlatform || stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [ "nouveau" ]
+    ++ lib.optionals stdenv.hostPlatform.isx86 [ "i915" "i965" ]);
+  defaultVulkanDrivers = optionals stdenv.hostPlatform.isLinux ([ ]
+    ++ lib.optional stdenv.hostPlatform.isx86 "intel"
+    ++ lib.optional enableRadv "radeon");
 in
 
 let gallium_ = galliumDrivers; dri_ = driDrivers; vulkan_ = vulkanDrivers; in