mirror of
https://github.com/materusPL/Nixerus.git
synced 2026-06-18 16:37:22 +02:00
112 lines
3.1 KiB
Nix
112 lines
3.1 KiB
Nix
{
|
|
pkgs,
|
|
pkgsi686Linux,
|
|
driversi686Linux,
|
|
amdgpu-pro-libs,
|
|
amdvlk,
|
|
mesa,
|
|
libGL,
|
|
with32bit ? true,
|
|
}:
|
|
let
|
|
amf-amd-pro = amdgpu-pro-libs.amf;
|
|
vulkan-amd-pro = amdgpu-pro-libs.vulkan;
|
|
oglp-amd-pro = amdgpu-pro-libs.opengl;
|
|
|
|
vulkan-amd-pro32 = pkgsi686Linux.amdgpu-pro-libs.vulkan;
|
|
oglp-amd-pro32 = pkgsi686Linux.amdgpu-pro-libs.opengl;
|
|
in
|
|
pkgs.buildEnv {
|
|
|
|
name = "amdgpu-pro-prefixes";
|
|
paths = with pkgs; [
|
|
(writeShellScriptBin "vk_pro" ''
|
|
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
|
|
export VK_ICD_FILENAMES="${vulkan-amd-pro}/share/vulkan/icd.d/amd_pro_icd64.json"
|
|
export LD_LIBRARY_PATH="${amf-amd-pro}/lib:$LD_LIBRARY_PATH"
|
|
${
|
|
(
|
|
if with32bit then
|
|
"export VK_ICD_FILENAMES=$VK_ICD_FILENAMES:${vulkan-amd-pro32}/share/vulkan/icd.d/amd_pro_icd32.json"
|
|
else
|
|
""
|
|
)
|
|
}
|
|
"$@"
|
|
'')
|
|
(writeShellScriptBin "vk_amdvlk" ''
|
|
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
|
|
export VK_ICD_FILENAMES="${amdvlk}/share/vulkan/icd.d/amd_icd64.json"
|
|
${
|
|
(
|
|
if with32bit then
|
|
"export VK_ICD_FILENAMES=$VK_ICD_FILENAMES:${driversi686Linux.amdvlk}/share/vulkan/icd.d/amd_icd32.json"
|
|
else
|
|
""
|
|
)
|
|
}
|
|
"$@"
|
|
'')
|
|
|
|
(writeShellScriptBin "vk_radv" ''
|
|
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
|
|
export VK_ICD_FILENAMES="${mesa}/share/vulkan/icd.d/radeon_icd.x86_64.json"
|
|
${
|
|
(
|
|
if with32bit then
|
|
"export VK_ICD_FILENAMES=$VK_ICD_FILENAMES:${driversi686Linux.mesa}/share/vulkan/icd.d/radeon_icd.i686.json"
|
|
else
|
|
""
|
|
)
|
|
}
|
|
"$@"
|
|
'')
|
|
|
|
(writeShellScriptBin "gl_pro" ''
|
|
export __GLX_VENDOR_LIBRARY_NAME=amd
|
|
export LIBGL_DRIVERS_PATH="${oglp-amd-pro}/lib/dri"
|
|
${
|
|
(
|
|
if with32bit then
|
|
''
|
|
export LD_LIBRARY_PATH="${oglp-amd-pro32}/lib:$LD_LIBRARY_PATH"
|
|
export LIBGL_DRIVERS_PATH="$LIBGL_DRIVERS_PATH:${oglp-amd-pro32}/lib/dri"
|
|
''
|
|
else
|
|
""
|
|
)
|
|
}
|
|
export LD_LIBRARY_PATH="${oglp-amd-pro}/lib:$LD_LIBRARY_PATH"
|
|
"$@"
|
|
'')
|
|
(writeShellScriptBin "gl_zink" ''
|
|
${
|
|
(if with32bit then ''export LD_LIBRARY_PATH="${pkgsi686Linux.libGL}/lib:$LD_LIBRARY_PATH"'' else "")
|
|
}
|
|
export LD_LIBRARY_PATH="${libGL}/lib:$LD_LIBRARY_PATH"
|
|
export __GLX_VENDOR_LIBRARY_NAME=mesa
|
|
export MESA_LOADER_DRIVER_OVERRIDE=zink
|
|
export GALLIUM_DRIVER=zink
|
|
|
|
"$@"
|
|
'')
|
|
(writeShellScriptBin "gl_radeonsi" ''
|
|
${
|
|
(if with32bit then ''export LD_LIBRARY_PATH="${pkgsi686Linux.libGL}/lib:$LD_LIBRARY_PATH"'' else "")
|
|
}
|
|
export LD_LIBRARY_PATH="${libGL}/lib:$LD_LIBRARY_PATH"
|
|
export __GLX_VENDOR_LIBRARY_NAME=mesa
|
|
export MESA_LOADER_DRIVER_OVERRIDE=radeonsi
|
|
export GALLIUM_DRIVER=radeonsi
|
|
|
|
"$@"
|
|
'')
|
|
];
|
|
|
|
meta = with pkgs.lib; {
|
|
description = "AMDGPU Pro helper prefixes";
|
|
license = licenses.mit;
|
|
platforms = [ "x86_64-linux" ];
|
|
};
|
|
}
|