Joshua-Ashton/d9vk

C&C 3 Tiberium Wars - rendering issues

Yardanico opened this issue · 5 comments

There are graphical glitches in C&C 3 Tiberium Wars, most units are partially or fully invisible, also static props on the map flicker (as well as shadows), also the MCV doesn't fully render, example of how it should look (taken from Google images):
image

Software information

Command & Conquer 3 Tiberium Wars v1.9 (latest released version)

System information

  • GPU: RX 570
  • Driver: Mesa 19.3.0-devel (git-030e67fac3)
  • Wine version: wine-4.17.r8.ga246130f ( TkG Staging Esync Fsync )
  • D9VK version: d9vk-mingw-git-0.21.r1243.bb8ce4288-1

Apitrace file(s)

Log files

Riesi commented

Did you record the trace with d9vk enabled? Because it renders the same with wined3d and d9vk on my end. If you recorded the trace with d9vk, please record one with wined3d instead.

Also how did you get the game working in wine? It refuses to start for me.... (maybe due to the fact that I own the combo version with KW included...)

@Riesi I don't know why it won't work for you, it just works for me in Wine. And I think I recorded the trace without d9vk, since I explicitly disabled it in winecfg and ran setup_d9vk uninstall before trying the game.
And yeah, I know that it renders the same with wined3d and d9vk, but I hope d9vk can fix this

Can you try with d3d9.allowLockFlagReadonly = False?

@Joshua-Ashton It's still the same, d9vk log - https://paste.debian.net/1105614
Wine itself also outputs a lot of stuff like this in terminal (although I don't know if it's related):

002a:fixme:d3dx:d3dx_effect_SetRawValue iface 1C3BC570, parameter 1C3BD2A8, data 00C05DB8, byte_offset 0, bytes 1024 stub!
002a:fixme:d3dx:d3dx_effect_SetRawValue iface 1C3BC570, parameter 1C3BD2A8, data 00C05DB8, byte_offset 0, bytes 1024 stub!
002a:fixme:d3dx:d3dx_effect_SetRawValue iface 1C3BC570, parameter 1C3BD2A8, data 00C05DB8, byte_offset 0, bytes 672 stub!
002a:fixme:d3dx:d3dx_effect_SetRawValue iface 1488A1E8, parameter 14893C98, data 00C05DB8, byte_offset 0, bytes 128 stub!
002a:fixme:d3dx:d3dx_effect_SetRawValue iface 1C2C5AC8, parameter 1C2C6EC0, data 00C05DB8, byte_offset 0, bytes 608 stub!
002a:fixme:d3dx:d3dx_effect_SetRawValue iface 1488A1E8, parameter 14893C98, data 00C05DB8, byte_offset 0, bytes 96 stub!
002a:fixme:d3dx:d3dx_effect_SetRawValue iface 1C2C5AC8, parameter 1C2C6EC0, data 00C05DB8, byte_offset 0, bytes 64 stub!
002a:fixme:d3dx:d3dx_effect_SetRawValue iface 1C2C5AC8, parameter 1C2C6EC0, data 00C05DB8, byte_offset 0, bytes 128 stub!
002a:fixme:d3dx:d3dx_effect_SetRawValue iface 1488A1E8, parameter 14893C98, data 00C05DB8, byte_offset 0, bytes 96 stub!
002a:fixme:d3dx:d3dx_effect_SetRawValue iface 17A10668, parameter 17A11510, data 00C05DB8, byte_offset 0, bytes 160 stub!
002a:fixme:d3dx:d3dx_effect_SetRawValue iface 17A10668, parameter 17A11510, data 00C05DB8, byte_offset 0, bytes 160 stub!
002a:fixme:d3dx:d3dx_effect_SetRawValue iface 1C3BC570, parameter 1C3BD2A8, data 00C05DB8, byte_offset 0, bytes 1024 stub!

Maybe the problem here is that C&C 3 uses D3DX library which always comes from Wine, and the issue is in this library?

P.S: d9vk log has a lot of "D3D9: Setting display mode: 1920x1080@0" stuff at the start because C&C 3 with d9vk launches weird in i3-gaps (the screen starts to flicker and it only launches the game after I press some random buttons or move the mouse for a bit, I don't know which one, but this probably only happens in i3 and not in DEs)

Ah, nvm, I think this can be closed since it works with native d3dx9 installed via "winetricks d3dx9"
image