Skip to content

Instantly share code, notes, and snippets.

@FairlySadPanda
Created December 10, 2025 14:44
Show Gist options
  • Select an option

  • Save FairlySadPanda/1f04568a36a2fd28ab8db4965c713daf to your computer and use it in GitHub Desktop.

Select an option

Save FairlySadPanda/1f04568a36a2fd28ab8db4965c713daf to your computer and use it in GitHub Desktop.
DNA performance advice
After getting a Legion Go S (Zen 2 Go, 16GB one) at a Black Friday sale, I decided to try and get DNA running on it and ended up spiralling into madness.
I leave my advice here for other internet explorers.
This applies to the **1.0 Fina patch**.
###
# Installation (of the game)
SteamDeckHQ's article worked for me. https://steamdeckhq.com/tips-and-guides/how-to-install-and-play-duet-night-abyss-steam-deck/
Do the installation in desktop mode, because you'll need to do some tinkering, and also grab the latest version of Proton-GE whilst you're at it. At time of writing, 10-26 has a DNA-specific fix in it.
Once you have the game installed, boot it up via Steam and at least get as far as logging in. You will, depending on where you spawn, notice the game runs very badly. You cannot fix this with in-game setting tuning, so just quit out.
# Installation (of a competent upscaler)
You also going to need to get Decky installed. https://decky.xyz/
To be honest you should have Decky anyway, it's basically essential to SteamOS.
Once Decky's installed, head back into Steam mode. You will need to use Decky's store to grab Decky-Framegen. Then you'll want to get DNA working with it. To do this, you need to follow the instructions in Decky-Framegen's menu in the Decky overlay. HOWEVER, you'll need to change your .exe target in DNA's Steam configuration (you did this earlier already if you were following Steamdeck HQ's guide).
Instead of launching [...]/EMLauncher.exe, you need to launch [...]/DNA Game/EM.exe (remember to not delete the quotation marks surrounding the path!). Then add Decky-Framegen's install command to the launch arguments, which is in the empty box below the paths on the same menu.
After all the above, if you boot the game from SteamOS, it won't open the launcher and instead will open the game directly.
If you've not messed up, you _should_ notice some text pop up as the game loads that wasn't there before. This is Decky-Framegen doing some file swapping shenanigans to make DNA think you have a DLSS-capable GPU, but actually emulating it using either XESS or FSR.
Log in and load into the game.
Open your SteamOS overlay and jump into DNA's controller options.
Set a button on your controller to press Insert. I recommend the left paddle (Z1).
Close the overlay and hit that button. You SHOULD see a black-and-blue menu pop up with lots of options. If this does not happen, you've screwed up.
Don't change any settings unless you're curious. Hit the insert button again to close the menu, then quit the game.
# DX11
OK, so now change SteamOS's config for DNA back to booting the launcher (replace [blah]/DNA Game/EM.exe with [blah]/EMLauncher.exe). Boot the game. You are now back on the launcher menu.
Tap the tiny checkbox that switches the game to DX11 mode, just about the "start game" button on the bottom right.
## Hang on, I heard DX12 is supposed to be better for SteamOS games?
DX12 for DNA causes seriously bad stutter, at least on my Legion Go S. The game runs at about the same FPS but without the stutter if you use DX11 mode. You can see this by using the SteamOS performance overlay and checking both modes. DX11 might report as slightly slower, but it doesn't have constant frame spikes.
# Set the upscaler
Get back into the game and hit your insert button again (Z1, etc). You are now back on that black-and-blue menu.
The only change we're making here is to the upscaler, the very top-left drop-down on the menu. Change it from FSR 2.1.2 to FSR 3.X (note that XESS doesn't look like it works for DNA in DX11 mode). There's a button next to the drop-down menu to apply the scaler - do so. Now you can close the menu.
# Set our in-game settings
OK, so now we can jump into DNA's options menus and take a look at the graphics menu.
What we can see is that the game's performance settings now include "DLSS" with an option to enable frame-gen! I personally dislike it, but hey, maybe the option works for you.
Set the game's overall performance to "average". Enable "DLSS" and set it to "Performance" (for the time being).
I recommend average because low/extremely low tend to cause graphical artifacts and mess with how some effects look. For example, "low" visual quality removes the diamond around the grapple points when they are highlighted, for some reason. It can net you a few more frames, so at this point just tinker a bit.
You may notice the game still runs like your grandma after an all-night bender, but at least we now can control how much upscaling we want from inside the game (because DNA's devs decided "on" or "off" were all we needed as AMD/Intel peasants).
# The in-game settings are buggy
At this point if you don't want to mess further around with the game, you're done.
From this point onwards though, you should be aware of a very important pair of fun secret features of DNA:
1. If you switch off anti-aliasing or tune other settings, then load into a different map, the game will sometimes decide to just turn AA back on, costing you several FPS for no reason. It does this at-will. The game absolutely loves AA.
2. If you mess with your settings config in .ini files, the settings menu will overwrite those settings if you open it _at all_. The game thinks it knows best and is out to smite you for trying to sober grandma up.
When changing graphics settings, once you are done, you need to quit the game entirely _via shutting it down from the pause menu_. Otherwise your settings may not save.
# The in-game settings are REALLY buggy
OK so why is the game still running badly?
Well it turns out that DNA's perforamance scaling options and default Unreal settings are kinda bad. Like, really kinda bad.
For this final section, we'll be editing the game's Engine.ini and Scalability.ini files. So it's time to get back into Desktop mode and open Dolphin.
To find these files, go find the install location of DNA and then inside that folder find this sub-folder - [blah]\DNA Game\EM\Saved\Config\WindowsNoEditor
You should see a bunch of text files. We want the Scalability.ini file first. Opening it reveals it's totally empty.
Set the file to read the contents of this Gist:
https://gist.github.com/FairlySadPanda/5b1b461a726f540e7f26579f916f7018
I can't vouch everything in there works, but basically, this tells the game "hey, when you are at certain graphics settings options, use these internal settings as well, and overwrite whatever you default to".
Remember that I said that the game likes overwriting your config? This is the config it likes overwriting.
Now for Engine.ini:
https://gist.github.com/FairlySadPanda/dcab44f138794d1736754358b0a9d6c6
This is a set of performance tweaks which also removes some motion blur, depth-of-field, distortion and ambient occlusion effects. DNA's developers forgot to add this to the in-game settings, so we have to make do here.
OK, so now we've changed these two files, get back into Steam mode and boot the game.
# You should now have more frames
Yippee!
On my Legion Go S with a Z2 Go in it, these settings tweaks get me to a relatively consistent 30fps in outdoor areas and 60fps indoors. The exception is Purgatorio Island's town area, where nothing can save you from that tesselated water effect and all the grass everywhere. Except...
# Duet Night Abyssknight End Field(s)
OK so the above changes _avoid_ making any drastic changes to how the game looks, but what if we did _one_ and gained a bunch of FPS?
So, uh, it turns out that DNA's grass is INCREDIBLY heavy on the GPU.
Like, if you go to Purgatorio Island and look down at the village - literally the first vista you ever see in game - the game is asking the GPU to deal with millions of grass triangles. I'm not kidding. There is no way to turn this down in game. The game just wants you to touch grass really badly.
You can see this in game. Go to Sybil's boss arena and look back to the valley. Then go to the boss arena at the bottom of Glevum Pit and notice your FPS is solid. The former is rendering an absolutely nuts amount of geometry, the latter has very little grass and runs well.
I estimate that the worst offenders are asking the GPU to render several million grass triangles a frame. Which our poor little Linux-based handheld doesn't want to do.
Grass isn't the worst individual offender at this, that would be Purgatorio Island's ocean which renders a whopping 3 million triangles a frame. But we _can_ turn the grass down.
To do so, get back in that Engine.ini file and find the line that says `foliage.MaxTrianglesToRender=5000000`
That currently is telling Unreal Engine that our foliage budget is, uh, five million triangles a frame.
Knock that down to, say, 1 - `foliage.MaxTrianglesToRender=1`
Boot the game, go find a formerly grass-heavy area, notice your performance is quite a lot better (and it's also easier to see items/geniemon, but we're not interested in gameplay advantages).
Note that this turns off all scatter foliage, like flowers and bushes. If you want them, try setting the value to 100000 (one-hundred thousand), or 500000 (five-hundred thousand) if you want the occasional graft to sneak through.
# Advice for the devs
This section is a quickie for the devs:
Dear DNA devs:
Unreal Engine is not fun to work with and I empathise, but please, God, fix the in-game settings menu and do a pass on performance.
None of the above tweaks would be needed if things like foliage render distance, upscaling amount in FSR mode, and so on were added.
You also need to take a serious look at if your scaling settings actually work. I'm not convinced that Texture Quality even does anything. Your distance culling seems to not work at all either; a mid-range GPU should not be rendering grass on the other side of the village on Purgatorio Island. You're a free-to-play title. On mobile, too!
Also, find whoever is on your team that loves all that grass everywhere and calmly explain to them what draw call budgets, GPU overdraw, the cost of transparency, and so on, are.
Also the game's, uh, good? Thanks for not having a gacha on the characters, please take my money for nice skins.
XOXO
- Panda
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment