protonscr

Source engine games display only black screen because of d3d9.floatEmulation

dxvkclosed amd radvd3d9
doitsujin/dxvk#2469 · opened 2022-01-30 by niobium93 · updated 2022-02-01 · 14 comments · github
1 matching comments, n / p to jump
Nniobium93 2022-01-30 github

I'm on latest DXVK master and latest mesa-git on an AMD Radeon RX 5700 XT and Source games seem completely broken with default settings.
d3d9.floatEmulation = False fixes it.
Video of what happens when I run Black Mesa

Software information

Tried Black Mesa and Dark Messiah of Might and Magic

System information

  • GPU: AMD Radeon RX 5700 XT
  • Driver: mesa-tkg-git-22.0.0_devel.149535.37989670b98-1-x86_64
  • Wine version: proton-tkg-git-7.1.r0.gf5ca8f5a-1-x86_64
  • DXVK version: v1.9.4-2-gb220c898

Apitrace file(s)

Log files

Black Mesa

Dark Messiah of Might and Magic

DDadSchoorse 2022-01-30 github

Can you try d3d9.floatEmulation = True?

Nniobium93 2022-01-30 github

Huh. That's weird, True does work! Only Auto and Strict black screens.

DDadSchoorse 2022-01-30 github

That makes sense because Auto means Strict with new radv since 1.9.4. What doesn't make sense is that Strict is supposed to match native behavior, so why does it break? Fwiw, I have a hard time reproducing the problem, can you try if other traces work for you? For example the one from #2458.
I also tried Portal 1, and it works perfectly fine for me.

OOschowa 2022-01-30 github

Can't reproduce this with Dark Messiah or hl2ep2 on RDNA2 at least.

Nniobium93 2022-01-30 github

Also, I can't seem to play back my own traces. Maybe I made them wrong? I think it still loaded DXVK when I was using the apitrace d3d9.dll. Is there a way to make proton use a custom d3d9.dll without DXVK? IIRC PROTON_USE_WINED3D disables custom d3d9.dll usage completely.

DDadSchoorse 2022-01-30 github

Try PROTON_USE_WINED3D=1 WINEDLLOVERRIDES=d3d9=n,b

DDadSchoorse 2022-01-30 github

That trace plays back broken when d3d9.floatEmulation = Strict and fine when True.

Okay, I think this might be a RDNA1 specific RADV/ACO bug then. It replays fine for me on Renoir using the same dxvk and mesa version. And @Oschowa said on discord that it also works on RDNA2.
You should open a mesa issue.

Nniobium93 2022-01-30 github

If I make a mesa issue, would it help to make a GFXReconstruct trace of the issue, or should I just include that other guys apitrace trace, considering none of my traces work...

Nniobium93 2022-01-30 github

Or maybe a RenderDoc frame?

DDadSchoorse 2022-01-30 github

If you can create an gfxreconstruct/renderdoc capture that reproduces the issue you should include that. Otherwise only the other guy's apitrace is probably good enough. Make sure to fill out the radv issue template and to test with RADV_DEBUG=llvm.

Nniobium93 2022-02-01 github

Finally got GFXReconstruct working and opened a mesa issue here.

Nniobium93 2022-02-01 github

PR that fixes this got merged in Mesa!

Launch options

DLLs