I’ve been dying for Steam Deck frame generation — so why is it so disappointing?

This past week, my prayers were answered. I’ve been patiently waiting for frame generation to show up broadly on the Steam Deck. The ROG Ally and ROG Ally X have it via AMD’s Fluid Motion Frames (AFMF), and Windows handhelds more broadly can use Lossless Scaling. But the Steam Deck can’t use frame generation, at least not in games that don’t come with native FSR 3 support — and there aren’t a ton of those that even run well on the Steam Deck.

Last week, the Decky-Framegen mod was officially released into beta on GitHub. It’s basically a DLL swapper, allowing you to use FSR 3 Frame Generation in games that only support DLSS Frame Generation. If you’ve used Decky Loader on the Steam Deck before, the installation process is simple. You just drag the plugin to your Plugins folder on the Steam Deck — located at /home/deck/homebrew/plugins — switch back to game mode, and apply the plugin to any game in the list. It’ll add a launch command to the games you select, and you’re off to the races.

In a game with DLSS Frame Generation, you’ll suddenly have the ability to not only select DLSS but also toggle on Frame Generation. This is still just FSR 3, but it’s applied via native DLSS support in a game.

Get your weekly teardown of the tech behind PC gaming

It sounds like a perfect solution, and that’s what I thought. I immediately queued downloads for Silent Hill 2, Final Fantasy XVI, and Cyberpunk 2077, wondering what kind of performance I could get in these games that, without frame generation, run pretty poorly on the Steam Deck. But I was in for a rude awakening. Decky-Framegen works, and I’m not going to uninstall it from my Steam Deck. But actually using the mod forced me to reset my expectations.

Making up for lost hardware

The Steam Deck sitting on a table with a custom backplate.
Jacob Roach / Digital Trends

In my recent look at DLSS 4, I wrote the following: “DLSS is it’s at its best when it’s pushing the next level of visual quality; it’s at its worst when it’s making up for hardware that can’t hit the mark.” That sentiment is what drives the conversation here around frame generation on the Steam Deck. It doesn’t enable you to play games that you otherwise couldn’t play. It just makes games you can already play look smoother.

There are a couple of problems here. First, and most obvious, is your base frame rate. Frame generation works its best when you can feed it with a high, consistent frame rate.

Let’s deal with the high portion first. FSR 3 uses frame interpolation, where the system renders two frames and finds the difference between them to generate a frame in between. The higher your frame rate, the less of a difference there is between the two frames, and the easier it is for the frame generation algorithm to figure out what should go in between. The lower your frame rate, the more difference there is between two frames, and the more difficult it is for the frame generation algorithm to figure out what should go in between.

A flow chart explaining AMD's FSR 3 data flow.
AMD

Latency also becomes an issue when your frame rate isn’t high enough. The way FSR 3 works, the system constantly needs to keep an extra frame buffered. That adds latency, and that latency is compounded when you already have a frame rate that feels unresponsive. The Decky-Framegen mod might be able to make 20 frames per second (fps) look like 40 fps, but playing the game feels like you’re running at 15 fps. That’s the idea, at least.

These are issues that plague any frame generation tool, from Lossless Scaling to Nvidia’s new DLSS 4 Multi-Frame Generation. They’re more prominent on the Steam Deck — or any handheld, for that matter — due to the low-performance overhead, but they’re still issues regardless of the platform you play on. There’s one issue specific to handheld gaming PCs, though, and that’s what really kills the experience.

The little devil of frame generation

Final Fantasy VII Rebirth running on the Steam Deck.
Jacob Roach / Digital Trends

I said that frame generation wants a high, consistent frame rate, and the consistency is why frame generation doesn’t work well on the Steam Deck. The one game I was most excited to play after learning about Decky-Framegen was Final Fantasy XVI. This game is unsupported on the Steam Deck due to how demanding it is, but I put 90 hours into it when it was released on the PS5, and I’ve been looking for an excuse to put in 90 hours more. I downloaded the demo with Decky-Framegen at the ready, and the experience was terrible.

The frame rate was consistently in motion. Animations were never smooth, and it felt like the game ran in slow motion when the performance dropped. I thought it was just Final Fantasy XVI, but it wasn’t. The same issue happened in Silent Hill 2. Disabling the frame generation made the game less smooth — to the point that it was unplayable — but it still felt like a better experience than when I used frame generation. And that’s when I ran into some unfortunate truths about using frame generation on a handheld.

There are two reasons consistency makes such a big difference. The first is the feel of the game. When your frame rate is in flux, the frame pacing gets through completely off. Between two frames, there might be a gap of 25 milliseconds, but between the next two frames, there’s a gap of 35ms. When the frame time is constantly in motion like this, it’s difficult to place the generated frame in the right spot. The motion looks like it’s constantly stuttering.

The other reason concerns the overhead that frame generation requires. It’s easy to forget that frame generation effectively lowers your performance. The algorithm needs to run, so in a constrained performance environment like the Steam Deck, you’ll get less performance with frame generation turned on versus off. The idea is that the extra generated frames can make up for the performance loss by essentially doubling your frame rate.

Frame time graph on the Decky-FrameGen mod.
I’m using the ROG Ally X with Bazzite installed here, but this applies to the Steam Deck, as well. Jacob Roach / Digital Trends

That overhead leads to a situation that you can see above in the frame time graph. In order for frame generation to work, the system needs to render a second frame before even displaying the first one. When your frame rate is constantly changing, that leads to a snowball of performance loss when the frame generation can’t keep up. By the time the second rendered frame (third total frame) is shown, the frame generation algorithm is still working on the next batch, forcing you to wait to see another frame. The result is this constant stuttering every block of three frames.

Frame generation is at its best when it’s pushing the next level of visual quality. It’s at its worst when it’s making up for hardware that can’t hit the mark.

My dream that frame generation on the Steam Deck would unlock some new level of performance was ultimately nothing more than that — a dream. But I still have the Decky-Framegen mod installed, and if you own a Steam Deck, I’d suggest you install it, too.

What Decky-Framegen does really well is make games that run smoothly look even smoother. For instance, I use the ROG Ally X with Bazzite installed as my main gaming handheld, and that device comes with a 120Hz display. Decky-Framegen is incredible for pushing games that normally run at a consistent 60 fps up to a consistent 120 fps. It’s like magic.

It’s just important to keep your expectations in check. The Decky-Framegen mod is great, but its use cases are a bit more limited than they may appear at first glance.






Leave a Comment