Radeon 7700 XT eGPU won't boot into gaming mode (ROG Ally X)
I finally got my eGPU setup today and eagerly tried to run the Radeon 7700 XT card on my brand new AOOSTAR dock. The results were very mixed. First, I cannot switch to gaming mode while the eGPU is connected. Every time I try, the game just forces me back into desktop mode and loads Steam there. Using terminal commands in desktop mode, I can confirm that the 7700XT is connected, detected, and working. I get full PCIE speeds (16 GT/s) and the Steam games run OK in desktop mode.
How do I get back to gaming mode? I should note I first tried to start the eGPU while the Ally X was in gaming mode. In gaming mode, the system doesn't detect the eGPU at all and shows only the internal video card.
15 Replies
tagging @Valerie as the egpu setup expert since she actually has an egpu setup
Have I become the eGPU person
yes because i dont know the quirks π
i just know there are quirks
I'm not complaining, just funny π
Oh lord are there quirks
Valerie "eGPU person" tar.gz
You need to run all-ways-egpu. This is a script that basically makes sure stuff is being rendered on the eGPU rather than the iGPU (including whatever compositor you're using). Run the guided setup and select yes for methods 2 and 3 when prompted.
Ideally, what you want to do when plugging in your eGPU is shutdown, plug it in, and then turn on your device. Hotplug can/does work but it doesn't always switch rendering stuff properly. You'll also want LACT (
ujust install-lact
). LACT is technically for "overclocking" however for whatever reason AMD cards don't always set their own TDP properly when connected as an eGPU leaving a significant amount of performance on the table.
Aside from that, just know that all of this stuff is jank. Stuff may not work, it might be semi-unreliable, but that's just kind of the eGPU life lol
We should probably get a ujust for all-ways-egpu setup
Actually I can probably just make a general egpu script and then write about it in the docsWow, this was helpful info. I followed your instructions and installed the all-ways-egpu thing, including hitting Y for methods 2 and 3. I should say that prior to this, the Ally X would boot to gaming mode where only the iGPU was recognized, and the video outputs to the device itself. When I switch it to desktop mode, it automatically switches video to my desktop monitor connected to the eGPU via displayport. There in desktop mode, the eGPU is recognized and performs mostly as expected (seems weaker than expected but that may be due to the TDP thing you mentioned).
Now, after I followed your steps, the behavior was the same, and in Steam settings in gaming mode, only the iGPU was shown. But when i start a game (Path of Exile 2 in my case), the game now shows the 7700 XT as the only available display. However, the video remains confined to the handheld instead of switching automatically to the connected monitor. Is there a way to get the video to output to whatever monitor is connected to the Radeon 7700XT?
Short of switching back to desktop mode, that is.
Actually, switching it to desktop mode did not result in the display switching back to my monitor. I then tried using All-ways-egpu to force switch the the egpu (lspci showed the 7700xt was detected at PCIE level). This was a mistake, as triggering the force switch command put the Ally X into a doom loop, the handheld screen turned off, the displayport monitor showed no signal still, and all it did was repeatedly play the Bazzite "switch to desktop mode" chime sound every 10-12 seconds, showing it was caught in a display manager reset loop.
Hard power off the Ally X and restart, unconnected to the eGPU, brought it back. I then powered on the eGPU and plugged it into the already booted Ally X. The device was in gaming mode. I then switched to desktop mode - bam, it automatically switched to display port. but i am stuck with the iGPU on right now, apparently running through the eGPU dock/displayport.
gamemode still on the wrong screen, search in docs maybe?
https://docs.bazzite.gg/Handheld_and_HTPC_edition/quirks/?h=#how-do-i-specify-the-correct-monitor-for-gaming-mode-to-use-htpc-only
Steam Gaming Mode Quirks and Workarounds - Bazzite Documentation
Bazzite is a custom image built upon Fedora Atomic Desktops that brings the best of Linux gaming to all of your devices.
No, for some reason when all-ways-egpu was active using methods 2 or 3, it would not recognize the external monitor connected to the displayport. so it would activate the egpu in gaming mode and make it the default gpu in games (though in the steam settings page, the igpu was still listed as the only display)
You can see in this screenshot, this is desktop mode on the allyx internal display. The command shows only the internal display detected.
steam system settings will always show the first card it sees
ok, that is good to know.
The main problem is, if all-ways-egpu is running, i can't get the system to recognize external monitors so the fact that the egpu is enabled in Gaming Mode is made moot. Switching to Desktop Mode still won't recognize external montiors, desktop mode will display on the built-in Ally X screen. On the other hand, if all-ways-egpu is NOT running, then I can only use Desktop Mode, where the eGPU works but with some minor janky bugs. Trying to switch back to Gaming Mode with all-ways-egpu OFF, will simply cause the Ally X to try and boot into Gaming Mode, it appears to fail, after trying to download and extract various Steam/Bazzite packages (these flash by), then it always simply returns me back to Desktop Mode, but logged out of Steam (as if I had rebooted the machine and the Steam credentials weren't saved).
having to sign back into steam means steam crashed
@Valerie @HikariKnight Ok, i assumed as much, however I am kind of stuck here as far as the all-ways-egpu script. I would be fairly content to settle for the eGPU reliably working in desktop mode, but there are a bunch of game-specific problems in desktop mode with Path of Exile 2. Very weird stuff, like whenever Directx12 is selected as the API, any keyboard inputs like WASD keys cause major frame-skipping, like you push "W" and the game freezes, then the goes back into motion with the character in the new position. Using a mouse to move the character has no problem. Changing to Vulkan also allows WASD movement without frame skipping, though Vulkan performance is markedly worse (avg 20 FPS reduction from Dx12). Even typing a message in the game with Directx12 causes this issue. So, I am inclined to want to get Gaming Mode working.
I am trying to troubleshoot Gaming Mode detecting the eGPU, and using it, but not being able to see multiple displays connected physically to the eGPU card. I tried installing Decky Terminal, but this app doesn't work right, it won't recognize my bluetooth keyboard and the virtual keyboard won't type anything into the Decky Terminal prompt. Any ideas how I can run terminal commands in Gaming Mode to try and troubleshoot the non-recognition of external displays?
use the TTY, or try add the actual terminal to steam
decky terminal is not a proper terminal and has issues from my experience.