diff options
author | David McFarland <corngood@gmail.com> | 2016-09-21 22:42:16 -0300 |
---|---|---|
committer | David McFarland <corngood@gmail.com> | 2016-10-11 14:19:38 -0300 |
commit | 3b4ce62451358882fb3f9bad5930fd13086223d1 (patch) | |
tree | b124e7feb8bfe2bbf8a152b037716db7ab0e764d /nixos/modules/hardware/video | |
parent | 44bc50ca159c4c0fb4327358f869c3c37f969204 (diff) |
amdgpu-pro: Init at 16.30.3-315407
Diffstat (limited to 'nixos/modules/hardware/video')
-rw-r--r-- | nixos/modules/hardware/video/amdgpu-pro.nix | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/nixos/modules/hardware/video/amdgpu-pro.nix b/nixos/modules/hardware/video/amdgpu-pro.nix new file mode 100644 index 000000000000..3723d7690dc6 --- /dev/null +++ b/nixos/modules/hardware/video/amdgpu-pro.nix @@ -0,0 +1,56 @@ +# This module provides the proprietary AMDGPU-PRO drivers. + +{ config, lib, pkgs, pkgs_i686, ... }: + +with lib; + +let + + drivers = config.services.xserver.videoDrivers; + + enabled = elem "amdgpu-pro" drivers; + + package = config.boot.kernelPackages.amdgpu-pro; + package32 = pkgs_i686.linuxPackages.amdgpu-pro.override { libsOnly = true; kernel = null; }; + + opengl = config.hardware.opengl; + +in + +{ + + config = mkIf enabled { + + services.xserver.drivers = singleton + { name = "amdgpu"; modules = [ package ]; libPath = [ package ]; }; + + hardware.opengl.package = package; + hardware.opengl.package32 = package32; + + boot.extraModulePackages = [ package ]; + + boot.blacklistedKernelModules = [ "radeon" ]; + + hardware.firmware = [ package ]; + + system.activationScripts.setup-amdgpu-pro = '' + mkdir -p /run/lib + ln -sfn ${package}/lib ${package.libCompatDir} + '' + optionalString opengl.driSupport32Bit '' + ln -sfn ${package32}/lib ${package32.libCompatDir} + ''; + + environment.etc = { + "amd/amdrc".source = package + "/etc/amd/amdrc"; + "amd/amdapfxx.blb".source = package + "/etc/amd/amdapfxx.blb"; + "gbm/gbm.conf".source = package + "/etc/gbm/gbm.conf"; + "OpenCL/vendors/amdocl64.icd".source = package + "/etc/OpenCL/vendors/amdocl64.icd"; + "vulkan/icd.d/amd_icd64.json".source = package + "/etc/vulkan/icd.d/amd_icd64.json"; + } // optionalAttrs opengl.driSupport32Bit { + "OpenCL/vendors/amdocl32.icd".source = package32 + "/etc/OpenCL/vendors/amdocl32.icd"; + "vulkan/icd.d/amd_icd32.json".source = package32 + "/etc/vulkan/icd.d/amd_icd32.json"; + }; + + }; + +} |