Update Nvidia busid check (#388892)

This commit is contained in:
Nick Cao 2025-03-26 18:33:41 -04:00 committed by GitHub
commit c58cb4c034
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -17,7 +17,7 @@ let
offloadCfg = pCfg.offload;
reverseSyncCfg = pCfg.reverseSync;
primeEnabled = syncCfg.enable || reverseSyncCfg.enable || offloadCfg.enable;
busIDType = lib.types.strMatching "([[:print:]]+[:@][0-9]{1,3}:[0-9]{1,2}:[0-9])?";
busIDType = lib.types.strMatching "([[:print:]]+:[0-9]{1,3}(@[0-9]{1,10})?:[0-9]{1,2}:[0-9])?";
ibtSupport = useOpenModules || (nvidia_x11.ibtSupport or false);
settingsFormat = pkgs.formats.keyValue { };
in
@ -120,30 +120,48 @@ in
prime.nvidiaBusId = lib.mkOption {
type = busIDType;
default = "";
example = "PCI:1:0:0";
example = "PCI:1@0:0:0";
description = ''
Bus ID of the NVIDIA GPU. You can find it using lspci; for example if lspci
shows the NVIDIA GPU at "01:00.0", set this option to "PCI:1:0:0".
shows the NVIDIA GPU at "0001:02:03.4", set this option to "PCI:2@1:3:4".
lspci might omit the PCI domain (0001 in above example) if it is zero.
In which case, use "@0" instead.
Please be aware that this option takes decimal address while lspci reports
hexadecimal address. So for device at domain "10000", use "@65536".
'';
};
prime.intelBusId = lib.mkOption {
type = busIDType;
default = "";
example = "PCI:0:2:0";
example = "PCI:0@0:2:0";
description = ''
Bus ID of the Intel GPU. You can find it using lspci; for example if lspci
shows the Intel GPU at "00:02.0", set this option to "PCI:0:2:0".
shows the Intel GPU at "0001:02:03.4", set this option to "PCI:2@1:3:4".
lspci might omit the PCI domain (0001 in above example) if it is zero.
In which case, use "@0" instead.
Please be aware that this option takes decimal address while lspci reports
hexadecimal address. So for device at domain "10000", use "@65536".
'';
};
prime.amdgpuBusId = lib.mkOption {
type = busIDType;
default = "";
example = "PCI:4:0:0";
example = "PCI:4@0:0:0";
description = ''
Bus ID of the AMD APU. You can find it using lspci; for example if lspci
shows the AMD APU at "04:00.0", set this option to "PCI:4:0:0".
shows the AMD APU at "0001:02:03.4", set this option to "PCI:2@1:3:4".
lspci might omit the PCI domain (0001 in above example) if it is zero.
In which case, use "@0" instead.
Please be aware that this option takes decimal address while lspci reports
hexadecimal address. So for device at domain "10000", use "@65536".
'';
};