Some Ideas on Manual Mux Switching

AMD SmartAccess Graphics, which automatically switches the Mux Position to/from dGPU, freezes for 3-5 seconds every time it makes the switch. I haven’t been able to pinpoint how it makes the decision to switch, but it seems to do it whenever there’s at least one D3D Device (with D3D_DRIVER_TYPE_HARDWARE?) requested by a process.

Maybe there’s already a solution by AMD in the works to reduce the hitch, but in the meantime, would it make sense to provide a user-side utility to manually trigger this by simply creating a background process with a D3D Device created? This way it would only (purposely) hitch once on toggle, rather than each time someone opens/closes the first/last process that asks for dGPU support. Then it could use something like WM_POWERBROADCAST notifications to exit the background process upon sleep, therefore switching it back to the APU automatically to avoid possible issues with battery life.

1 Like

The main reason Framework as not decided to add manual MUX support in the case of the Framework 16 as said by other users is likely because it would be very difficult to handle situations where the MUX is shifted to the dGPU but the user decided to remove the dGPU module and change it out with the Expansion Bay Shell. The MUX is a physical switch so it would have to be instructed to physically switch back to the iGPU, but the user’s preferences tell it to stay in dGPU mode which will likely mean no display output.

1 Like

Yeah, I get that. What I’m proposing is quite different, and more like a band-aid, since it’s a user-side utility that triggers AMD SmartAccess Graphics’s default behavior, which should handle the case you’re mentioning. Rather than trigger the switch by opening an application (e.g. a game), it gets triggered by the user by, essentially, opening an “invisible” application that asks for the same graphics capabilities a game would, just not using them.

It’s possible to implement a way that just keeps the dGPU on, but I can’t really think of a way to turn it on or off at will.

My method would be having a custom app that is set in Windows settings to use the high performance graphics / dGPU, although that would mean that you would have to constantly quit and reopen it when you want to switch between graphics cards.