| 
									
										
										
										
											2016-09-21 22:42:16 -03:00
										 |  |  | # This module provides the proprietary AMDGPU-PRO drivers. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-03 00:55:57 -05:00
										 |  |  | { config, lib, pkgs, ... }: | 
					
						
							| 
									
										
										
										
											2016-09-21 22:42:16 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | with lib; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   drivers = config.services.xserver.videoDrivers; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   enabled = elem "amdgpu-pro" drivers; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   package = config.boot.kernelPackages.amdgpu-pro; | 
					
						
							| 
									
										
										
										
											2018-11-03 00:55:57 -05:00
										 |  |  |   package32 = pkgs.pkgsi686Linux.linuxPackages.amdgpu-pro.override { libsOnly = true; kernel = null; }; | 
					
						
							| 
									
										
										
										
											2016-09-21 22:42:16 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  |   opengl = config.hardware.opengl; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-09 20:49:55 -04:00
										 |  |  |   kernel = pkgs.linux_4_9.override { | 
					
						
							|  |  |  |     extraConfig = ''
 | 
					
						
							|  |  |  |       KALLSYMS_ALL y | 
					
						
							|  |  |  |     '';
 | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-21 22:42:16 -03:00
										 |  |  | in | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   config = mkIf enabled { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-09 20:49:55 -04:00
										 |  |  |     nixpkgs.config.xorg.abiCompat = "1.19"; | 
					
						
							| 
									
										
										
										
											2017-01-29 19:02:48 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-21 22:42:16 -03:00
										 |  |  |     services.xserver.drivers = singleton | 
					
						
							| 
									
										
										
										
											2019-08-14 12:37:03 -04:00
										 |  |  |       { name = "amdgpu"; modules = [ package ]; display = true; }; | 
					
						
							| 
									
										
										
										
											2016-09-21 22:42:16 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  |     hardware.opengl.package = package; | 
					
						
							|  |  |  |     hardware.opengl.package32 = package32; | 
					
						
							| 
									
										
										
										
											2019-05-24 01:21:57 +02:00
										 |  |  |     hardware.opengl.setLdLibraryPath = true; | 
					
						
							| 
									
										
										
										
											2016-09-21 22:42:16 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  |     boot.extraModulePackages = [ package ]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-09 20:49:55 -04:00
										 |  |  |     boot.kernelPackages = | 
					
						
							|  |  |  |       pkgs.recurseIntoAttrs (pkgs.linuxPackagesFor kernel); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-21 22:42:16 -03:00
										 |  |  |     boot.blacklistedKernelModules = [ "radeon" ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     hardware.firmware = [ package ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     system.activationScripts.setup-amdgpu-pro = ''
 | 
					
						
							|  |  |  |       mkdir -p /run/lib | 
					
						
							|  |  |  |       ln -sfn ${package}/lib ${package.libCompatDir} | 
					
						
							| 
									
										
										
										
											2018-01-09 20:49:55 -04:00
										 |  |  |       ln -sfn ${package} /run/amdgpu-pro | 
					
						
							| 
									
										
										
										
											2016-09-21 22:42:16 -03:00
										 |  |  |     '' + optionalString opengl.driSupport32Bit '' | 
					
						
							|  |  |  |       ln -sfn ${package32}/lib ${package32.libCompatDir} | 
					
						
							|  |  |  |     '';
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-09 20:49:55 -04:00
										 |  |  |     system.requiredKernelConfig = with config.lib.kernelConfig; [ | 
					
						
							|  |  |  |       (isYes "KALLSYMS_ALL") | 
					
						
							|  |  |  |     ]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-21 22:42:16 -03:00
										 |  |  |     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"; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |