Hey folks! I’ve got my LGO working with

Hey folks! I’ve got my LGO working with my eGPU. But it’s a LOT slower than on Windows. About 40% of FPS vs Windows according to Cyberpunk benchmark. I’m using a Razer Core with a 7900 XT. I’ve used the solution to use full PCIe speed as seen on Legion Go Tricks (thanks! It definitely helped!) Any idea why? I’ve seen a mention (using search) of a 15W limit bug report (from a couple of days ago) here. It does sound like it could be some TDP limitations. Or maybe my VRAM setting in BIOS (currently at 6, was same when tearing on Windows, though).
28 Replies
HikariKnight
HikariKnight9mo ago
can you run journalctl -xe -t bazzite-tdpfix | fpaste and post the link here? we had a recent update that added a service meant to poissibly fix an issue where the TDP got set to 15W on some cards due to them having writable sysfs (which made steam set the TDP directly on boot) however since 0 of us has an egpu we did not test it with egpus
antheas
antheas9mo ago
That and setting the lanes properly
HikariKnight
HikariKnight9mo ago
yeah i have 0 experience in general with egpu so i wouldnt even know that 😂
antheas
antheas9mo ago
Oh he did that already Yes then check lact to see if it's 15w
HikariKnight
HikariKnight9mo ago
if it is 15W it should be a very easy fix for me to do, just need to add more checks to cover egpus if the current one does not catch that
antheas
antheas9mo ago
So did we figure out why perms are wrong? They should never be 644 Or I guess 666?
HikariKnight
HikariKnight9mo ago
we didnt find the root cause, but it does not affect all cards either which makes it hard to pinpoint other than "early boot" so the service i wrote will at least set the permission back to 644 before steam sees it. not ideal but it works and only does something if the permissions are wrong or the TDP is wrong, then it never runs again for that boot
antheas
antheas9mo ago
Mmmm let the hunt continue
HikariKnight
HikariKnight9mo ago
yeah, hopefully we stumble upon it, or it gets silently fixed and we will never know 🤣 either way the service will fix the issue if it spots it at least and i could make it check the other sysfs stuff that steam interacts with too if it turns out that causes issues too but for now i want to keep it to the TDP only since that we know is an issue, better than it being non functional until we find the root cause (also less janky than the original workaround which was a timer unit)
jipiboily
jipiboilyOP8mo ago
I'm sorry for not replying yet. I was away for a little bit. I'll have a look tonight or tomorrow when I'm back home! 🙂 In the meantime, thanks for your replies! But yeah, TDP settings seems totally possible as it's working, but just not its full potential. To be continued soon... @HikariKnight here I am, many days later (crazy week; couldn't sit with my Legion go since then). The output of the command is here: https://paste.centos.org/view/eb28b795 it looks like it's not found...maybe I'm a patch or two behind...? haven't used Linux as my daily driver for well over a decade...currently looking into what LACT is it seems have I have some directions to look into 🙂
antheas
antheas8mo ago
the problem is that the endpoint has the perm 644 and steam writes to it 15W as for background: why does steam write to it 15W? because AMD wired the tdp controls for the deck into a special SMU instruction that only exists on the deck and gets exposed under the same sysfs point as the power cap of amd CPUs. lact just reads that
jipiboily
jipiboilyOP8mo ago
ah, interesting! and which endpoint has a 644 perm?
antheas
antheas8mo ago
so if you can do some research and figure out why that permission error happens that be great one sec
jipiboily
jipiboilyOP8mo ago
is it a just chmod and it fixes it, or it's more tricky?
antheas
antheas8mo ago
here is the new patch for it
antheas
antheas8mo ago
GitHub
bazzite/spec_files/jupiter-hw-support/priv-write.patch at main · ub...
Bazzite is an OCI image that serves as an alternative operating system for the Steam Deck, and a ready-to-game SteamOS-like for desktop computers, living room home theater PCs, and numerous other h...
antheas
antheas8mo ago
essentially thats what it does, its a bit more fancy
jipiboily
jipiboilyOP8mo ago
oh nice! merged, but probably not released hehe thanks so much!
antheas
antheas8mo ago
heres the og file
jipiboily
jipiboilyOP8mo ago
will look into trying to run master/2.5.0 beta or whatever
antheas
antheas8mo ago
if [[ "$WRITE_PATH" == /sys/class/drm/card*/device/pp_od_clk_voltage ]]; then
CommitWrite
fi

if [[ "$WRITE_PATH" == /sys/class/hwmon/hwmon*/power*_cap ]]; then
CommitWrite
fi
if [[ "$WRITE_PATH" == /sys/class/drm/card*/device/pp_od_clk_voltage ]]; then
CommitWrite
fi

if [[ "$WRITE_PATH" == /sys/class/hwmon/hwmon*/power*_cap ]]; then
CommitWrite
fi
here are the gpu endpoints
jipiboily
jipiboilyOP8mo ago
❤️ I'm wondering if it could be related with the TDP setting from within gamescope with the decky plugin (can't remember the name right now) it could very well be that plugin rewriting the max TDP just a random thought ryzenadj doesn't seem to be helpful with the eGPU here (side note: rebooting with the eGPU plugged in makes me run into another issue: both screens are black. But not the core issue right now, IMHO)
antheas
antheas8mo ago
Part of it could be that because as part of the ujust instructions it partially enables the polkit Ryzenadj itself doss not affect the power cap we have tested it multiple times
jipiboily
jipiboilyOP8mo ago
ah gotcha I feel soooo lost haha
antheas
antheas8mo ago
That's due to the fact that the gpu slider breaks if that doesn't happen But I don't know the specifics Dancing around steam limitations
jipiboily
jipiboilyOP8mo ago
That'll be it for tonihgt. Will likely be coming back at it during the week. Ideally, I would love to be able to test the patch you linked, but I'm not sure how just yet. Will look into this next 🙂 Thanks so much for the help. Very much appreciated.
HikariKnight
HikariKnight8mo ago
it already is in main before you had the issue however can you run echo $(find /sys/class/hwmon/*/ -name "power*_cap") | fpaste might be that your endpoint is not named power1_cap which is what we look for, as the issue has only affected them, and your output indicated you didnt have anything named power1_cap
Want results from more Discord servers?
Add your server