35 lines
		
	
	
	
		
			714 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			714 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   lib,
 | |
|   config,
 | |
|   pkgs,
 | |
|   namespace,
 | |
|   ...
 | |
| }:
 | |
| let
 | |
|   inherit (lib) mkIf mkEnableOption;
 | |
|   cfg = config.${namespace}.system.hardware.gpu.amd;
 | |
| 
 | |
|   amdvlk-run = pkgs.writeShellScriptBin "amdvlk-run" ''
 | |
|     export VK_DRIVER_FILES="${pkgs.amdvlk}/share/vulkan/icd.d/amd_icd64.json:${pkgs.pkgsi686Linux.amdvlk}/share/vulkan/icd.d/amd_icd32.json"
 | |
|     exec "$@"
 | |
|   '';
 | |
| in
 | |
| {
 | |
|   options.${namespace}.system.hardware.gpu.amd = {
 | |
|     enable = mkEnableOption "Enable AMD GPU";
 | |
|   };
 | |
| 
 | |
|   config = mkIf cfg.enable {
 | |
|     hardware.graphics = {
 | |
|       enable = true;
 | |
|       enable32Bit = true;
 | |
|     };
 | |
| 
 | |
|     environment = {
 | |
|       systemPackages = [ amdvlk-run ];
 | |
|       variables = {
 | |
|         AMD_VULKAN_ICD = "RADV";
 | |
|       };
 | |
|     };
 | |
|   };
 | |
| }
 |