Let's do some performance testing of #Steam Game Recording!
Starting off on #SteamDeck LCD with Shadow of the Tomb Raider. I ran the benchmark at MED quality preset with Game Recording off, then Background Game Recording on and recorded results for the *2nd* run of each. I also ran each set of benchmarks twice to ensure I saw the same results.
For this example, we're seeing a 5% performance hit.
(In results screen, you can see the GPU working just a bit harder w/ recording on.)
More to come.
Whoo boy. The performance hit changes drastically when stepping up to my gaming laptop. (Asus ROG Strix G15 running Bazzite 40 with Ryzen 9 5980HX + Radeon 6800M)
Running Shadow of the Tomb Raider at 1440p with the Highest quality preset, I did two benchmark runs with Game Recording on and off, recording results from the 2nd run to ensure hardware was nice and toasty.
The reduction in performance this time was a whopping 37%!
Back to the Steam Deck for now, testing Cyberpunk 2077 (using the Steam Deck quality preset). Can confirm the EXACT same performance hit of 5% (producing an average 42FPS during the benchmark) when switching on Game Recording. Which is an impressive result!
(Next up, I'll bounce back to the gaming laptop for Shadow of the Tomb Raider -- but this time running it at the same resolution and quality settings from the Steam Deck runs.)
OK, so back to the gaming laptop and Shadow of the Tomb Raider. Does that massive 37% performance hit scale down as expected when lowering resolution and quality?
I reduced the output to 720p on my gaming laptop and switched to the Medium quality preset to somewhat mirror the Steam Deck test.
I'm now seeing a performance hit of 19% when enabling Game Mode. I still think it should be considerably less on hardware this powerful
Thoughts?
More testing required!
(thanks for the idea @root)
I'm testing Steam Game Recording on Windows now. This is Shadow of the Tomb Raider with the same 1440p/Highest setting as on Linux/Bazzite. Here, you can see the performance hit is only 13% with background game recording ON.
This is the way it *should* be, so I'm convinced Steam on Bazzite is using software encoding and not hardware encoding for this AMD RX 6800M.
I'll definitely be testing this on another more vanilla distro to see how things compare.
@killyourfm I mean, to be fair, not only do you hella crank up the resolution AND refresh rate so the render needs to be more beefy
but the codec itself *also* has to record at that scale.
37% perf hit is NUTS though.
@root You know what, that's a good shout.
I'm gonna run the same test on my laptop at 720p.
@root The video output seems locked at 1080p btw. Even using the Highest Game Record setting (24Mbpss)
@killyourfm geez 37% is pretty significant
@el_haych2024 Yea. WAY more testing is required to get a sense of things though. Let's see if that same performance hit is there with something like Cyberpunk...
@killyourfm I was gonna yell at the iGPU but then I realized that if Steam used the iGPU for encoding and the dGPU for rendering, there would *literally not be a performance delta*.
Beyond that, scaling up 720p to native-res should NOT take that much processing power.
Beyond deck-specific optimizations (SteamDeck=1 environment variable anyone?), seeing as the GPU in that laptop is LITERALLY 5 TIMES THE MUSCLE, *and* has dedicated memory, this shit is beyond me.
@killyourfm
The only thing that could break all of my assumptions is the *way* Steam Recording is capturing frames. Could be that on Linux it uses a Vulkan layer and just eats frames there, whereas on Windows it needs to be more involved.
@root I'll do some more testing tomorrow with different games. Tonight I'm whooped! Stay tuned and thanks for all your feedback.
@killyourfm @root That's high CPU usage. I think it was using software encoding for the laptop.
@akhenaton @root I believe so too.
Think it's worth testing on Windows and another distro to have some comparisons.
@killyourfm @akhenaton I kind of missed the mark on that one 'cause I assumed VALVe did their homework on GPU-accelerated encoding and dumping on Windows. That one's on me.
Unless this is recording on Linux via Chimera/Bazzite/etc, in which case, wot.
@root @akhenaton All these results so far are on Bazzite 40...
@killyourfm @akhenaton then my w0t stands.
W0t the hell.
(sorry for missing "Asus ROG Strix G15 ->running Bazzite 40<-")
@killyourfm@layer8.space Well 13% is still a huge performance drop. I think they will work on the feature a little bit more.
On Windows there are already platforms like #Medal and there is little to none performance drop, with the same feature set as Steam. But yeah... Windows only
@killyourfm the performance impact should be barely noticable with hardware encoding to a raw output, so there's definitely something wacky going on. Perhaps the Bazzite install (flatpak?) is missing the appropriate VAAPI libraries/drivers for this.
@necrophcodr Ya know, that IS possible. I just noticed that my installation of OBS isn't offering up any hardware-level encoding options...
Maybe I should get in touch with them?
@killyourfm might be worth investigating where it goes wrong, but if both are lacking this then it's probably Bazzite. Maybe others have noticed too? Definitely worth putting attention to for the right people.
@killyourfm @necrophcodr
I am using OBS on linux (Kubuntu). H.264 Vaapi is available for my RX 6700 XT and works pretty well for my needs (1080p 60fps). OBS is installed as a Flatpak. The performance impact is around 3% load on the CPU.
@hg810316 @necrophcodr That's the nudge I needed. I was thinking about testing these same games on Kubuntu. Thanks for sharing!
@killyourfm @necrophcodr
I use this ppa for the latest stable Mesa drivers: https://launchpad.net/~kisak/+archive/ubuntu/kisak-mesa
@killyourfm ., unrelated but I’m pretty disappointed that the number of amd dgpu laptop options seems to be dwindling and possibly done after the last few 7X00 series which are going out of stock with no replacements announced. I love my Asus ROG Zephyrus G14 (2022) with 6800S but that’s the last 14” model anywhere with AMD dGPU.