doitsujin / dxvk

Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine
zlib License
12.76k stars 822 forks source link

[d3d9] Menu graphics corruption in Crazy Taxi 3 #2819

Open simifor opened 2 years ago

simifor commented 2 years ago

Software information

Crazy Taxi 3, the only setting you can change is resolution (and seems to have no effect on this)

After finishing a match and getting to the driver rank page, graphics appear corrupted. The issue also appears with wine's d3d renderer, but in the case of wine the menu gets back to normal when alt-tabbing (which doesn't happen with dxvk).

System information

Apitrace file(s)

https://ufile.io/izyozi0l

Log files

K0bin commented 2 years ago

The apitrace replays just fine. This might be a driver bug.

image

simifor commented 2 years ago

The menu only breaks after a match finishes, they look normal before that point. So your screenshot is the same thing I see, the problem only happens later.

K0bin commented 2 years ago

Never mind, it's there right at the end.

simifor commented 2 years ago

It's already in the original message,

K0bin commented 2 years ago

The fixed function vertex shader used for the UI at the end uses DXVK_TSS_TCI_CAMERASPACEREFLECTIONVECTOR with DXVK. If I edit the shader to just use the input texture coordinate, it renders fine.

The game sets CAMERASPACEREFLECTIONVECTOR | 1 as the texture index. The docs say CAMERASPACEREFLECTIONVECTOR takes precendence in that case but that might be wrong. Need to investigate that at some point.

Alternatively it's possible that something resets it as the game renders a bunch of frames between setting that and the frame I looked into. The game doesn't seem to use vertex shaders at all, so this isn't it.

Blisto91 commented 1 year ago

https://mega.nz/file/91wUkQJB#1iA8v0qtq7JsNVJIKfb-jw-6BUNVAgsXT7n1YKE3WIU

Trace reuploaded

londiebrondie commented 1 year ago

Did anyone find a fix? Also, this is super trippy, hey @Blisto91!! I'm the annoying guy who kept making posts about Knuckle Sandwich (demo) crashing on linux (https://github.com/ValveSoftware/Proton/issues/6526).

So, again, did anyone ever find a fix?

Blisto91 commented 1 year ago

Did anyone find a fix?

Not yet. Fixed Function is kinda cursed from what I've gathered. I think it's just waiting for a dev to have time to look at it.

londiebrondie commented 1 year ago

A dev of dxvk or Crazy Taxi 3? Because Crazy Taxi 3 is basically dead...

londiebrondie commented 1 year ago

The apitrace replays just fine. This might be a driver bug.

Buys a 3090, plays Crazy Taxi 3 :joy:

Blisto91 commented 1 year ago

A dev of dxvk or Crazy Taxi 3?

Dxvk

londiebrondie commented 1 year ago

A dev of dxvk or Crazy Taxi 3?

Dxvk

Cool. Also, if anyone here wants a copy to further investigate the problem, it's up on myabandonware (because It's not on Steam, Epic, GOG, or basically anywhere else).

https://www.myabandonware.com/game/crazy-taxi-3-high-roller-cjp

nor2101 commented 1 year ago

Using dgVoodoo2 as an additional wrapper fixes the glitches and distorsions