You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Attempting to run the script as-is fails on 12.3.1, another mac on 11.6.5 (that doesn't have eGPU) also fails to have any output from this command.
Deploying a workaround allows it to function correctly to set / probe the eGPU preferences on the apps.
# Check eGPU presence for Mojave+
check_egpu_presence() {
(( ${IS_HIGH_SIERRA} == 1 )) && return
EGPU_VENDOR="$(ioreg -n display@0 | grep \"vendor-id\" | cut -d "=" -f2 | sed 's/ <//' | sed 's/>//' | cut -c1-4 | sed -E 's/^(.{2})(.{2}).*$/\2\1/')"
[[ -z "${EGPU_VENDOR}" ]] && echo -e "\nExternal GPU must be plugged in for ${BOLD}set-eGPU${NORMAL} on macOS 10.14+.\n" && exit
}
however this has zero output:
% ioreg -n display@0 | grep \"vendor-id\" | cut -d "=" -f2 | sed 's/ <//' | sed 's/>//' | cut -c1-4 | sed -E 's/^(.{2})(.{2}).*$/\2\1/'|wc -l
0
As a workaround I changed this line to read: EGPU_VENDOR=AMD
Which then allowed me to run this just fine.
You'd probably be better off using system_profiler for this kind of check.
Example output (which can be quite verbose with many displays connected):
eweiman@eweiman-mbp-osx ~ % system_profiler SPDisplaysDataType
2022-05-02 11:14:58.005 system_profiler[87107:1263592] Device PreExisted [00000001000006c6] AMD Radeon RX 580
2022-05-02 11:14:58.006 system_profiler[87107:1263592] Device PreExisted [0000000100000622] Intel Iris Pro Graphics
2022-05-02 11:14:58.006 system_profiler[87107:1263592] Synchronize with Metal initialization
2022-05-02 11:15:01.012 system_profiler[87107:1263592] Can't find (Metal) name, location, locationNumber, maxTransferRate
2022-05-02 11:15:01.013 system_profiler[87107:1263592] Synchronize with Metal initialization
2022-05-02 11:15:04.013 system_profiler[87107:1263592] Can't find (Metal) name, location, locationNumber, maxTransferRate
2022-05-02 11:15:04.043 system_profiler[87107:1263592] Synchronize with Metal initialization
2022-05-02 11:15:07.044 system_profiler[87107:1263592] Can't find (Metal) name, location, locationNumber, maxTransferRate
2022-05-02 11:15:07.045 system_profiler[87107:1263592] Synchronize with Metal initialization
2022-05-02 11:15:10.053 system_profiler[87107:1263592] Can't find (Metal) name, location, locationNumber, maxTransferRate
Graphics/Displays:
Intel Iris Pro Graphics 5200:
Chipset Model: Intel Iris Pro Graphics 5200
Type: GPU
Bus: Built-In
VRAM (Dynamic, Max): 1536 MB
Vendor: Intel
Device ID: 0x0d26
Revision ID: 0x0008
Metal Family: Supported, Metal GPUFamily macOS 1
Displays:
Color LCD:
Display Type: Built-In Retina LCD
Resolution: 2880 x 1800 Retina
Framebuffer Depth: 24-Bit Color (ARGB8888)
Mirror: Off
Online: Yes
Automatically Adjust Brightness: Yes
Connection Type: Internal
Radeon RX 580:
Chipset Model: Radeon RX 580
Type: External GPU
Bus: PCIe
PCIe Lane Width: x4
VRAM (Total): 4 GB
Vendor: AMD (0x1002)
Device ID: 0x67df
Revision ID: 0x00e7
Metal Family: Supported, Metal GPUFamily macOS 1
GPU is Removable: Yes
Displays:
DELL P2217H:
Resolution: 1920 x 1080 (1080p FHD - Full High Definition)
UI Looks like: 1920 x 1080 @ 60.00Hz
Framebuffer Depth: 30-Bit Color (ARGB2101010)
Display Serial Number: 4RDG97C71234
Main Display: Yes
Mirror: Off
Online: Yes
Rotation: Supported
You might be able to just grep for "External GPU" in this case, or if you really need the vendor info you could get that as well, however I don't see a reason to get that specific.
Attempting to run the script as-is fails on 12.3.1, another mac on 11.6.5 (that doesn't have eGPU) also fails to have any output from this command.
Deploying a workaround allows it to function correctly to set / probe the eGPU preferences on the apps.
This line tries to use
ioreg
to determine if the eGPU is connected on Mojave and later.https://github.com/mayankk2308/set-egpu/blob/master/set-eGPU.sh#L159
however this has zero output:
As a workaround I changed this line to read:
EGPU_VENDOR=AMD
Which then allowed me to run this just fine.
You'd probably be better off using
system_profiler
for this kind of check.Example output (which can be quite verbose with many displays connected):
You might be able to just grep for "External GPU" in this case, or if you really need the vendor info you could get that as well, however I don't see a reason to get that specific.
The text was updated successfully, but these errors were encountered: