Ivy's profile picture

Published by

published

Category: Web, HTML, Tech

Steam Deck Desktop Experience - The Good and Bad

  Semi-early Steam Deck adopter here, purchased mine in December (2022, in case this ages). Came in with the sole intention of using it as a desktop replacement. The justifications being it's portability and power consumption - despite being an x86 chip, it's average wattage is considerably low the Deck is able to house it quite nicely in a bag-friendly form factor. A Steam Deck and a small USB-C keyboard is all I really need to take with me to get some work done outside of home. When it is home, I have it set up on an entry level JSAUX dock with a mouse, keyboard, etc. full setup. Valve assured buyers in advertising the Deck would at the very least be decent for gaming and web browsing in the Desktop experience, so what I have been doing has certainly been pushing it in terms of intent, and that shows.

  The first thing I had done is unlocked write access to the root partition of the filesystem. Valve was very open about the pros and cons of this, and even offers a shell alias (steamos-readonly *able). This was pretty mandatory to use pacman since as a developer I'm going to need access to a standard package manager for libraries, at the very least. The problem with this is since SteamOS likes to just flush the partitions on firmware install, I can't ever properly trust upgrading through the Game Mode interface. Oh well, -Syu never failed me. Failed my friend once, though.

  Him and I found a bleeding-edge repository where Valve stores new package versions, including a 6.1.21 kernel (at the time of writing mainline is 5.X, bleh). You can browse those packages here, btw! I wouldn't heavily recommend it if you aren't savvy. Last week Valve had pushed some awful changes that managed to overwrite our pacman.conf file and pushed a broken kernel with some dumb color correction adjustments that just spam dmesg. Ended up borking grub. Bleh.

  I've also been encountering some really annoying stuttering and kernel panics. Every few hours the system will stutter for a few seconds, regardless of mode. Eventually it will outright freeze and I have to give it the ole bad-cleanup-hold-power-button-treatment. That's what I get for wanting a newer, better kernel, I suppose? Definitely ridiculous though, it's been a few months. Has Valve not really noticed?

  The Desktop experience ships with KDE Plasma. It's probably the least divisive DE around right now, but it isn't great. Pretty notorious for things like Plasma crashing if you have an unstable internet connection and continue opening the WiFi widget on the task bar. Also not the most memory-lean DE, but it's not Gnome, so.. *shrugs* it's rather pretty, I have a Windows 7 mock theme (check it out here!) that tickles my 2009 nostalgia brain. The system has enough memory for the performance issues to not be a problem, but that WiFi widget crash affects me so often (I think the WiFi drivers on the Deck are crud too, Valve plz..) I have a bash alias to kill and start Plasma again.

  Final subject: Game performance. SteamOS' game mode is special, and I mean that genuinely - it does what Linux is great at doing, cutting off useless services and becoming a very lean system. It feels like a great console sit-in, ignoring the fact configuring games is still a thing that you will inevitably run into. Game mode also features a dynamic/scalable CPU and GPU clock and memory system. This is where all of your amazing performance comes from.

  Desktop mode lacks this.

  Games perform, straight fugly. Maybe 50-60% as well as they do in Game Mode. Sometimes worse. Playing a game like DOOM: Eternal just is not doable. They all stutter, they all run inconsistently and variable. If I want to play a game, I have to switch modes. If I have things like music running, or a code editor (maybe I just wanted to check something out, real fast), it's either have a poor gaming experience, or close all of that, wait for the mode to switch, Steam to start again, etc. It's unpleasant.

  To conclude: Am I disappointed? Not quite. But it's messy. I've had better Linux desktop experiences, which isn't really a good thing comparing to Valve's goal of being "just pick it up and have a nice time". But this is lightly tread waters, it's unreasonable for me to expect this to be smooth sailing all the way through. My only hope is this blog post is somehow insightful for someone wanting to dive into danger like I did, and to document these experiences, since for whatever reason there isn't much about it online.

  Insert obligatory neofetch..

neofetch!

XOXO <3,

Ivy


0 Kudos

Comments

Displaying 1 of 1 comments ( View all | Add Comment )

Ivy

Ivy's profile picture

04 MAY 2023 - Source on scaleability of resources on game v desktop modes.

"Posted this two days ago into a thread that the owner deleted.

|Desktop mode uses SMT off, so something close to "4 cores parked" essentially. (SMT is basically hyperthreading, where the Steamdeck SOC can handle 2 processes per core. This shows up as "actual and individual cores" in the powertools plugin, so 8 in total. SMT off would deactivate the virtual ones, Parking 4 in Powertools might park two real, and two virtual ones - but the effect is similar enough for most usecases. So Powertools can or could help to get performance up, usually for games/apps that arent well optimized for multiple cores. :) (Although its only available in game mode. :) ) )

Powertools set to park four cores and deactivate boost mode for most games is enough (lowers TDP vs. boost mode active (which it is by default btw)). So you can use four core parking (= higher per core clock and TDP usage), and then usually lower TDP a little by deactivating CPU Boost, and still get a better experience in game mode. (On programms, or apps that dont handle multiple cores/multithreading well.)

Also, I asked the dev, all powertool settings get reset to Steamdeck defaults on every reboot.]

Ok... :) Pull up the FPS graph at level 4. There you'll see all cores, at all the Mhz values they are running at, and the GPU and the Mhz value it is running at.

Also notice the Watt counter.

Leave it up while playing a low performance game, and see what happens. How clockrates change, basically.

Both CPU and GPU performance rates (Mhz ceilings) get adjusted dynamically, and the lower the "ceiling" that gets applied for your game, the lower the watt usage. The lower the fan noise. :) The greater the battery life. :)

But. The adjustments only are best guesses.

Pull up a low performance game. Set TDP to 3 Watt. Watch what happens to your game (it hopefully doesnt start to stutter, if it is a low performance game), watch what happens to Watt consumption.

This is the first big "trick" to use, when playing low performance games. Setting TDP to 3 or 5 watt can reduce power consumption below default. Which is beneficial, if the game doesnt start to stutter, or get broken audio.

Also watch what happens to framerate.

Next, deactivate the TDP limiter again, and set the frame limiter to 30 fps. In some games audio freaks out. But some games can handle it like a champ. Depending if the game already used a 30 fps limiter or not. This can have have a massive positive impact on power consumption, but at the cost of less responsiveness, and more input lag. That said, some games dont need it, and you can almost double battery life by halfing the framrate. Theoretically in game frame rate limiter options are preferable, as having the menu slider fps limiter engaged (even at 60fps), will add up to 3 frames of input lag. Just something to know.

GPU clock rate, you can leave deactivated basically all the time - Steamdeck usualy is good at prioritizing GPU over CPU and lowering the clock rate for games that dont need a high clock rate, doesnt lead to massive reductions in watt used, over the normal dynamic adjustment.

Then there is stuff thats doable with the Power Tools Plugin like adjusting SMT - but better talked about as "core parking". In gaming mode, the Steam Deck will use 8 virtual cores (4 physical ones, hyperthreaded to 8) and the dynamic adjustment curve usually only has one or two of them run at 3500 Mhz. This is optimal for power consumption (cores are most power efficient at below 3000mhz), but sometimes games (especially emulators) need more Mhz - or arent well optimized for multiple cores.

The usual example given is Dolphin, where if you "park" (temporarily turn off) 4 cores (unsure how many of them virtual. :) ) the remaining 4 can boost to up to 3500 more frequently - resulting in sometimes massive frame gains of up to 20 fps. For reference: https://old.reddit.com/r/SteamDeck/comments/ue2vvt/this_plugin_makes_emulation_so_much_better/

Also - lets give you another example. TDP unlimited - In Melonds in Retroarch (Nintendo DS emulator), at 5x internal resolution Hotel dusk runs perfect on dialogue sequences, but not so good in 3D environments (framedrops to the low 50s). If you use powertools and park 4 cores, the remaining 4 seldomly reach above 3000 Mhz (average demand might be too low, so Steam Decks default curve clock them down), but if you park 5 and only have 3 active, the clock rates start to go above 3000 Mhz and the Stutter goes away. Now that said, Power Tools also has a toggle for CPU boost (thats the cpu clocking from 2800 Mhz up to 3500 Mhz, which is the opposite of power efficient), if you have 3 cores active in said game, and toggle off CPU boost, per clock speed goes to 2700Mhz average, but the game still runs without stutter, saving another 2 Watt.

So basically Hotel Dusk becomes perfectly runable, if you reduce cores to 3 and deactivate boost mode, at the same Wattage the game would use on the default dynamic adjustment curve, with all 8 cores active and at a lower per core clock speed - while on the default dynamic adjustment curve, it drop to low 50s.

Thats it basically, not much else to learn, that would grant you massive Performance or Power gains.

Most usefull stuff is to turn TDP down for less demanding games, to gain battery life, and lower heat and fain noise.

Other stuff might be needed for emulators.

In general, dont try to optimize for 60Hz if you are running a demanding 3D game, thats on the verge of getting there, as clocking the cores higher, will just tank performance per watt (efficiency).

And currently only in beta is 40Hz Mode for the display, which is a good compromise for demanding games, that you dont want to run on 30Hz, because the become to unresponsive. Basically in terms of theoretical frames of lag, 40hz already brings you to the halfway point between 30 and 60 Hz. (But then systemwide frame limiter in the past added input lag... regardless, people like 40 Hz mode... ;) )

Two more options, there is half shading rate, which Digital foundry is talking about here: https://www.youtube.com/watch?v=W4HDhFF7Ops

They dont like it, I basically keep it on almost always. :) (Reduces image sharpness, because it calculates stuff at half resolution every second or so grid of pixels, if you can live with that (sometimes it makes text real blurry) - this will reduce GPU usage but also overall performance cost.)

And there is FSR, which is fancy upscaling. With 40fps mode becoming a thing (currently only in the beta version of the Steamdeck software), most people target 40hz at native resolution, and try not to use FSR.

But FSR still is a good option for when you basically cant reach a desired framerate, and turning the game to 540p (f.e., or lower) is an option. FSR will scale the image output to 800p using an upscaling pass on the output images (so it doesnt cost much performance), generally adds sharpness to the image, the amount of which you can adjust with the sharpness slider.

For frame limiter and FSR, the rule is, if you find those options in game, use the in game options, not the global Steamdeck options, the ingame options are better. (Framelimiter will introduce less input lag, and FSR will not apply FSR over text (sometimes even some textures), so it doesnt become fuzzy - Steamdecks Systemwide FSR gets applied over on screen text as well)."

https://web.archive.org/web/20221013183616/https://www.reddit.com/r/SteamDeck/comments/ujf4gk/do_games_on_desktop_run_worse_than_in_gaming_mode/


Report Comment