We all know that macs some macs with discrete NVIDIA GPUs don't boot with a Thunderbolt 3 enclosure with a NVIDIA eGPU inside it. We have always used @goalque's tbt-options workaround to do this, but the problem with that was that subsequent boots would clear this value, and cause the problem again. This, however, sticks forever:
sudo nvram tbt-options="BA=="
In my testing, the EFI has yet to clear this variable and I have booted into both macOS and Windows 4-5 times with eGPU plugged in. But eGPU does not seem to function in this case (fans ramp up, but nothing else happens). Don't really understand what's going on here, but such values could be key to discovering some more interesting things.
purge-wrangler ✧ tbt-flash ✧ purge-nvda ✧ set-eGPU
Insights Into macOS Video Editing Performance
Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro
2019 13" MacBook Pro [8th,4C,U] + RX Vega 64 @ 32Gbps-TB3 (Mantiz Venus) + macOS 10.14.6 & Win10 [build link]
Is that a base64 encoded string, 04? A login hook kept the tbt-options value up-to-date: https://support.apple.com/en-us/HT2420 However, I decided to remove this functionality from the EFI app. Shutting down wasn't reliable and I guess this worked at 60% success rate.
EDIT: Just noticed that eGPU doesn't function. Maybe because your MBP firmware (pre Late-2014) does not support hot plugging?
Be careful in modifying this setting, the value may get stuck so that the Mac doesn't POST at all, happened once for me (different setting, though).
automate-eGPU EFI ● apple_set_os.efi
Mid 2015 15-inch MacBook Pro eGPU Master Thread
2018 13" MacBook Pro [8th,4C,U] + Radeon VII @ 32Gbps-TB3 (ASUS XG Station Pro) + Win10 1809 [build link]
@goalque Just read your warning right now - fortunately nothing went south. I tested few values - apparently as long as you provide some Base64 value (AA, AQ, etc), EFI won't detect eGPU (fans ramp up - nothing else), but this in turn likely disables device enumeration in IOThunderboltFamily.kext, which in turn disables GPU detection. You might be correct in saying that hot-plug may not be supported in the firmware. And tbt-options has some weird values for when the EFI does detect the GPU (and fails POST). Some values are %801>, %00 & @==. Such a weird variable.
purge-wrangler ✧ tbt-flash ✧ purge-nvda ✧ set-eGPU
Insights Into macOS Video Editing Performance
Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro
2019 13" MacBook Pro [8th,4C,U] + RX Vega 64 @ 32Gbps-TB3 (Mantiz Venus) + macOS 10.14.6 & Win10 [build link]
Value 4 seems to have something to do with firmware updating:
https://stackoverflow.com/questions/17227516/should-this-be-done-with-bash-script-or-automator-or-applescript
Some hackintosh sites show %04
automate-eGPU EFI ● apple_set_os.efi
Mid 2015 15-inch MacBook Pro eGPU Master Thread
2018 13" MacBook Pro [8th,4C,U] + Radeon VII @ 32Gbps-TB3 (ASUS XG Station Pro) + Win10 1809 [build link]
%04 is not retained. It changes to %00 on next boot. BA is retained. Interesting results.
purge-wrangler ✧ tbt-flash ✧ purge-nvda ✧ set-eGPU
Insights Into macOS Video Editing Performance
Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro
2019 13" MacBook Pro [8th,4C,U] + RX Vega 64 @ 32Gbps-TB3 (Mantiz Venus) + macOS 10.14.6 & Win10 [build link]
nvram value has 4 possible data types: CFBoolean, CFNumber, CFString or CFData. In EFI it is always in byte presentation, fixed length.
https://opensource.apple.com/source/system_cmds/system_cmds-196/nvram.tproj/nvram.c.auto.html
Setting values from terminal may not work properly if the nvram parser cannot determine the correct data type from the user input.
automate-eGPU EFI ● apple_set_os.efi
Mid 2015 15-inch MacBook Pro eGPU Master Thread
2018 13" MacBook Pro [8th,4C,U] + Radeon VII @ 32Gbps-TB3 (ASUS XG Station Pro) + Win10 1809 [build link]
Just a quick intrusion into something that is technically well over my head to say not all nVidia dGPU macs can't boot with a TB3 nVidia eGPU attached :). The 2012 Retina MBP 15" with 650m boots fine with a Thunderbolt 3 nVidia 1070 attached (in fact the only way to get the eGPU to work is to attach before boot).
Now, I'm very interested in trying to get goalque's new Hybrid modification to work on this mac if possible.
@ozzy good to know. In my case, the only way to get an NVIDIA eGPU working is to delay plugging in (or using NVRAM mods). Corrected original post.
purge-wrangler ✧ tbt-flash ✧ purge-nvda ✧ set-eGPU
Insights Into macOS Video Editing Performance
Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro
2019 13" MacBook Pro [8th,4C,U] + RX Vega 64 @ 32Gbps-TB3 (Mantiz Venus) + macOS 10.14.6 & Win10 [build link]