Closed Zodiase closed 6 years ago
If the preference for an application is set correctly, then the setting should be display-agnostic. However, some users have reported that sometimes games won't use the eGPU. Additionally, some games only work if there is a display attached to the GPU (no need for it to be the main display, just be present - can be a headless HDMI - no mirroring required).
I will investigate the issue with applications installed by clients like Battle.net and Steam soon. In the meantime, you could try setting the preference manually (Option 2). The basis of the script is that it finds the config plist of the apps using a simple trick:
osascript -e 'id of app "<app_name>"'
If the game, in this case "StarCraft II", returns an output for this command, then manually setting it will change its preference for sure - whether it responsibly adheres to the preference is unknown.
Additionally, searching the entire system for applications (Option 1) is somewhat infeasible given the amount of time it may take on some systems. So a better approach might to address these clients directly in the script.
If you already have an external display attached to your eGPU, the optimal configuration is to keep your external display as the main display (no mirroring of course). In such a case, some apps may automatically use eGPU if launched on the main display.
osascript -e 'id of app "StarCraft II"'
returns net.battle.bootstrapper
, which I guess does not help detecting the game...
On the other hand, the game I want this to work the most, EVE Online, the launcher of which spawns a Wine container. osascript -e 'id of app "wine"'
doesn't work at all. :(
FYI, now I'm trying out games from Steam, osascript -e 'id of app "Besiege"'
returns unity.Spiderling Games.Besiege
. But the script still says Target application does not exist
.
Thank you for the report. I will attempt making refinements to the script soon.
v1.1.0 should resolve issues with Steam applications (pref should be set correctly at least). Applications that don't expose their correct config plist will be investigated later. Apps must be updated to use eGPUs on dev-end. This is only a stopgap measure.
StarCraft II, launched through Battle.net, for example, doesn't seem to be using the eGPU at all, after running the script and "Set eGPU Preference for All Applications".
Macbook Pro 2017 with TouchBar, macOS High Serra 10.13.5, AMD Radeon RX Vega 64
Does it matter if eGPU has a connected display? Also does it matter which display is set as the main? (I ask because Parallels Desktop prompts me to set the display that is connected to eGPU as the main one.)