The following steps were required to get a Metal-based renderer on macos Mojave (10.4.6) to use the Intel (Integrated) GPU instead of the AMD discrete one (High Perf GPU).
-
Do not use
MTLCreateDefaultDevice. Instead, useMTLCopyAllDevicesto get a list of all available GPUs and then keep the one satisfyingdevice.lowPower == true -
Set "Supports Automatic Graphics Switching" (
NSSupportsAutomaticGraphicsSwitching)key in the App'sInfo.plisttoYES
Launch Activity Monitor and verify the App is now listed with "Requires High-Perf GPU: NO".