{ pkgs , pkgsi686Linux , driversi686Linux , stdenv , 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.drivers}/share/vulkan/icd.d/radeon_icd.x86_64.json" ${(if with32bit then ''export VK_ICD_FILENAMES=$VK_ICD_FILENAMES:${driversi686Linux.mesa.drivers}/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" ]; }; }