Manjaro with Intel + RTX 3070 (Running NVidia Optimus) and RTX 3080 eGPU - bad performance results
I'm noticing we have few linux guys here so I thought I'll ask your help. I'm currently running Manjaro KDE (sddm) and am attempting to get my build https://egpu.io/forums/builds/2021-17-gigabyte-aorus-17g-xd-11th8ch-rtx3070-rtx-3080-32gbps-tb3-razer-core-x-chroma-win10/ working. What seems to complicate things is that my laptop has Nvidia Optimus which cannot be turned off in BIOS.
More info and details and debugging steps about the issue I have are posted in Manjaro forums (so far nobody has managed to help me there): https://forum.manjaro.org/t/issue-with-egpu-performance-gaming-on-kde/85380/
All eGPU switch tools (for example the hertz script) have tha same issue as the setup I've come up with currently. The displays connected to the eGPU work, all 3 of them get output, desktop itself is fairly smooth. All tools indicate the eGPU is in use (mangohod, system monitor, nvidia-smi, gx-gears) but in reality game performance? It runs worse than my dedicated RTX 3070 mobile. For example comparisons with Snowrunner (Win game running through Proton):
I even tried this script from @nu_ninja https://egpu.io/forums/thunderbolt-linux-setup/all-ways-egpu-script-for-wayland-linux-desktops/ but that results in no display output at all (not through eGPU nor the laptop screen itself) after I continue from GRUB, if eGPU is connected. And it's so bad even tty does not show up.
The purpose of my all-ways-egpu script is to totally disable the igpu and dgpu to try and take them out of the equation and only use the egpu. So if the egpu is doing the rendering, but it's relying on passing the rendered frames back to the dgpu/igpu then they pass them back to the egpu to display that might explain both the bad performance and why you get the black screen with my script. I don't have experience with the Nvidia Optimus or display config setup so unfortunately I cant say more than that's what I think is happening
Strangely enough, in windows I could disable the iGPU and dGPU from the Device manager (or rather I had to to have stable performance) and use the eGPU only. That's one of the reasons I attempted your script, hoping it works the same.
Strange thing is I think the eGPU does turn on because monitors detect the signal, turning on, but they are just black.