protonscr

[d3d9] Mighty No. 9 frame spikes

dxvkclosed d3d9
doitsujin/dxvk#4849 · opened 2025-04-15 by ZoruaLoL · updated 2026-06-30 · 6 comments · github
ZZoruaLoL 2025-04-15 github

While the game is already not the best optimized in the world I was hoping DXVK could improve on it a bit, but sadly it appears to add even more stutters than by default (which are primarely traversal-related). Every time a new model/effect appeared on the scene the game would freeze for like a full second, and not because it was compiling any shaders (the times it had to compile it was instantaneous) according to DXVK's own HUD.

Image

Software information

Mighty No. 9 (32-bit executable), max settings

System information

  • GPU: RX 580 8GB
  • Driver: 24.9.1
  • Windows version: 10 22H2 (19045.5737)
  • DXVK version: 2.6.1 (32-bits)

Apitrace file(s)

Log files

MN9Game_d3d9.log
MN9Game_d3d11.log
MN9Game_dxgi.log

BBlisto91 2025-04-15 github

Hi there.

Every time a new model/effect appeared on the scene the game would freeze for like a full second, and not because it was compiling any shaders (the times it had to compile it was instantaneous) according to DXVK's own HUD.

So they don't go away if playing through the same section or area again?

Mmbriar 2025-04-15 github

Does the "graphics pipelines" number in the hud go up every time it stutters? It still sounds like shader compilation stutter, the "compiling shaders" message from the hud is somewhat missleading because it will only ever show up when dxvk compiles some pipelines from the state cache (on drivers not supporting graphics pipeline library, like AMD windows drivers for old gpus they dropped support for)

ZZoruaLoL 2025-04-15 github

So they don't go away if playing through the same section or area again?

I tested again and it appears the stutters were gone in levels I already played with DXVK, but still present on the ones I hadn't tried before, and a lot of the times it appears they happen per level "chunk" (for example, in the DLC stage shooting the buster will only produce a stutter the first time until you reach the next level junction) so I guess they are at least being cached in

BBlisto91 2025-04-15 github

It is better to pay attention to the graphics pipelines number than the compiling shaders text as mbriar noted. If it increases during the stutters then shaders are being compiled.
But if they are gone in levels already played then it would seem like it is that.

The improvements dxvk have made in regards to shader compilation from version 2.0 and onwards pretty much depend on your driver supporting the VK_EXT_graphics_pipeline_library Vulkan extension, which your AMD driver does not.
Otherwise you'd have to try with something like the dxvk-gplasync fork.

ZZoruaLoL 2025-04-16 github

I did try with the glpasync fork as well, and the result is very much the same compared to other games I've tried (Bloodstained: RotN, GetsuFumaDen, both UE4 games) where in those I do notice that stuttering is completely avoided but the obvious downside to it is that certain assets are loaded into the scene without a shader for a full second (whereas they would obviously cause a stutter) and I was wondering if at one point those become imperceptible if I was to upgrade, and I now suppose that they will if I get a new GPU (since Unreal games are all over the place even with the latest RTX)

BBlisto91 2026-06-30 github

Don't think there is anything more to do here. From some short testing in the first level the game seems fine with VK_EXT_graphics_pipeline_library which eliminates most of the gameplay stutters compared to without.
The Windows AMD drivers for these old GPUs also wont work anymore with current dxvk.

Nothing extracted yet.