protonscr

[d3d9] [OMSI 2] [x86] Enabling d3d9.forceSwapchainMSAA breaks render order / depth buffer

dxvkclosed d3d9not a bug
doitsujin/dxvk#2090 · opened 2021-06-08 by sjain882 · updated 2021-08-16 · 3 comments · github
Ssjain882 2021-06-08 github

If d3d9.forceSwapchainMSAA is set to any value other than -1 in dxvk.conf, then the depth buffer breaks, causing an incorrect render order in reflections (only).

This is a 100% reproducible issue and does not require any special circumstances.

No graphics card control panel setting (NVIDIA/AMD) seems to affect the behaviour of this issue.

Example 1:

Without MSAA, you can see the vehicle's passenger grab poles are visible in front of the passenger seats.

Discord_2021-06-08_13-25-41

Enabling MSAA, however, causes the seats to be incorrectly drawn infront of the poles.

Discord_2021-06-08_13-25-31

Example 2:

Without MSAA, the vehicle's rear exit door, passenger grab poles and seat handles are drawn in the correct positions.

Omsi_2021-06-08_13-19-38

Witth MSAA, however, the rear exit door is incorrectly drawn infront of the seats, and the poles and seat handles behind the seats and bus body, as well as the rear window being drawn infront of the seats.

Omsi_2021-06-08_13-27-22

Software information

Game: OMSI 2
Graphics API: DirectX 9
Architecture: x86

System information

  • GPU: NVIDIA GeForce GTX 980Ti
  • Driver: 465.89
  • Wine version: (Running on Windows)
  • DXVK version: v1.8.1 (Latest from GitHub Releases)

Log files

Ddoitsujin maintainer 2021-06-08 github

If you override the game's default options then stuff can break, more news at 11. This is not a bug.

What's likely happening here is that the game tries to pair a back buffer with a custom depth buffer which is obviously not multisampled, which just doesn't work.

Ssjain882 2021-06-08 github

I suspected this. However, if I uninstall DXVK, then force MSAA via the NVIDIA Control Panel, there are no issues ingame. This has been the case for everyone for years, so it's not like a situational based thing.

Thats the only reason I thought to open this issue. :)

Aaufkrawall 2021-06-13 github

The Nvidia Windows driver can do all sorts of black magic when forcing MSAA/SSAA for <= D3D9, it would probably require an insane amount of work to implement something similar in DXVK.

Nothing extracted yet.