Work for multiple GPUs now

1. Replace `\\"` with `\"`, otherwise awk warns `\"' is not a
   known regexp operator
2. Use the slot number of `lspci -mm` return value to
   determine whether two video cards are in different PCI slots,
   and therefore are two different GPUS.
This commit is contained in:
Lucius Hu 2019-06-03 03:38:30 -04:00
parent 614a2d1b70
commit b58942d6c6
No known key found for this signature in database
GPG Key ID: 22EBDD4ADBA40CF5
1 changed files with 3 additions and 3 deletions

View File

@ -2135,9 +2135,9 @@ get_gpu() {
case "$os" in case "$os" in
"Linux") "Linux")
# Read GPUs into array. # Read GPUs into array.
gpu_cmd="$(lspci -mm | awk -F '\\"|\\" \\"|\\(' \ gpu_cmd="$(lspci -mm | awk -F '\"|\" \"|\\(' \
'/"Display|"3D|"VGA/ {a[$0] = $3 " " $4} END {for(i in a) '/"Display|"3D|"VGA/ {a[$0] = $1 " " $3 " " $4}
{if(!seen[a[i]]++) print a[i]}}')" END {for(i in a) {if(!seen[a[i]]++) print a[i]}}')"
IFS=$'\n' read -d "" -ra gpus <<< "$gpu_cmd" IFS=$'\n' read -d "" -ra gpus <<< "$gpu_cmd"
# Remove duplicate Intel Graphics outputs. # Remove duplicate Intel Graphics outputs.