HansKristian-Work / vkd3d-proton

Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.
GNU Lesser General Public License v2.1
1.75k stars 184 forks source link

Indika: flickering black artifacting on the snow #1982

Open adolfintel opened 2 months ago

adolfintel commented 2 months ago

I'm testing the game Indika (https://store.steampowered.com/app/1373960/INDIKA/) and I noticed that the snow is not rendered correctly, specifically there are flickering black areas, more noticeable in some areas and less in others.

The problem can be encountered about 20 minutes into the game, as soon as you leave the first area.

I tried playing around with RADV and ACO settings but nothing seems to have an effect.

Software information

Indika (https://store.steampowered.com/app/1373960/INDIKA/)
This is an UE4 game.

System information

Log files

I don't see anything unusual in the logs.

I tried capturing it with apitrace but the capture is only 568kb so I doubt it contains anything useful, here's the link though: https://downloads.fdossena.com/issues/Indika-Win64-Shipping.trace

Video of the issue:

https://github.com/HansKristian-Work/vkd3d-proton/assets/16307689/8fd74f12-a156-4d54-9bca-e192b1248af1

Edit:

gfxrecostruct trace (vulkan side only unfortunately): Here's the trace: https://downloads.fdossena.com/issues/indika.gfxr

saved game for testing (put it in appdata local): Indika.zip

mbriar commented 2 months ago

gfxreconstruct can also now capture d3d12 and has worked better well for me (at least when capturing on windows). Other than that maybe add a save game in the problematic spot.

adolfintel commented 2 months ago

I was able to get a trace with gfxrecon but only on the vulkan side, trying to capture d3d12 crashes the game.

Here's the trace: https://downloads.fdossena.com/issues/indika.gfxr

Here's a saved game where you can see snow (just skip the cutscene, walk outside and look at the snow), you have to put it in appdata local: Indika.zip

doitsujin commented 1 month ago

RADV_DEBUG=llvm seems to work around the issue and it works on NV as-is. Shaders look relatively innocent and there's some weirdness with flicker happening even with a static frame capture, so there's a good chance this is a driver bug.

Edit: ACO_DEBUG=force-waitcnt also fixes it here.

adolfintel commented 1 month ago

@doitsujin RADV_DEBUG=llvm wasn't working here and made the game very stuttery, ACO_DEBUG=force-waitcnt seems to work though.

This seems like a mesa bug then.

mbriar commented 1 month ago

Did anyone report this to Mesa?

Rrauros commented 4 weeks ago

Did anyone report this to Mesa?

I just did. https://gitlab.freedesktop.org/mesa/mesa/-/issues/11299

pendingchaos commented 3 weeks ago

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29735 seems to fix the gfxreconstruct trace