How to force discrete GPU usage

I’m trying to get my discrete GPU working under Bazzite, but I’m having some issues. The system’s iGPU is all that seems to be used. The card is a Radeon RX 9060 XT in a Minisforum DEG1 dock, connected via oculink. Monitor is connected to HDMI on the Radeon card.

I know that eGPU’s aren’t officially supported in Bazzite, but I hoped going with oculink would work better since it’s PCIe and not USB/thunderbolt. It seems like it’s almost there. Both cards show and the dGPU is default, but nothing seems to use it.

The card shows in switcherootctl:

bazzite@bazzite:~$ switcherooctl list
Device: 0
  Name:        Advanced Micro Devices, Inc. [AMD®/ATI] Navi 44 [Radeon RX 9060 XT]
  Default:     yes
  Discrete:    yes
  Environment: DRI_PRIME=pci-0000_03_00_0

Device: 1
  Name:        Advanced Micro Devices, Inc. [AMD®/ATI] Rembrandt [Radeon 680M]
  Default:     no
  Discrete:    no
  Environment: DRI_PRIME=pci-0000_e8_00_0

Running vkcube successfully launches a spinning cube and it says it’s using the discrete GPU:

bazzite@bazzite:~$ vkcube
Selected WSI platform: xcb
WARNING: radv is not a conformant Vulkan implementation, testing use only.
Selected GPU 0: AMD Radeon Graphics (RADV GFX1200), type: DiscreteGpu

But I don’t see any utilization for GPU1 in System Monitor, only GPU2 shows activity.

I have a couple of Steam games and tried putting “DRI_PRIME=0 %command%” (and DRI_PRIME=1) but still no luck. System monitor only shows GPU2 doing anything.

I checked my BIOS and I can’t disable the iGPU. Maybe some way to block it with udev rules or something?

Anyone have any ideas what else I can try to get this working?

I’ve tried a couple things so far. Just trying to confirm that the GPU is being used.

I disabled the iGPU by adding kernel args to stop loading the driver "(kargs --append=‘pci-stub.ids=1002:1681’) and that seems to have hidden it. Switcherootctl only shows the 9060 with both the default and discrete flags set. But system monitor still doesn’t show much GPU utilization when running games. Still see mostly CPU used. I also tried creating a docker container and running ollama with a small deepseek LLM, also no GPU used. Just CPU.

I had originally bought an Nvidia 5060 TI card before I read about some of the driver issues, so I did some testing with that as well. When on that card, I rebased to bazzite-nvidia-open:stable, and it kind of worked, but similar issues. eGPU shows in all settings (Fastfetch, switcherootctl) but still no significant GPU usage showing in System Monitor. Also, the Steam app is missing part of the title bar (where “STORE LIBRARY COMMUNITY” is). And when launching an older game (Portal2) it still loads Vulcan drivers and then fails to launch the game. So I’m not sure if I need to re-load steam (and possibly Portal 2), or somehow change it to recognize the Nvidia card.