AlpyneDreams / d8vk

Direct3D 8 to Vulkan translation for DXVK! Merged into dxvk: https://github.com/doitsujin/dxvk
zlib License
486 stars 6 forks source link

Global Operations (2002) d8vk transparency bug #181

Open AnthraxBass opened 11 months ago

AnthraxBass commented 11 months ago

Software information

Same settings, as in dgVoodoo video, I have just replaced dg DLL with yours. Also Lutris log attached.

System information

Linux Mint 21.2 x86_64, Kernel: 5.15.0-78-generic, Lutris 0.5.13, NVIDIA drivers 535.86.05 for x86_64, NVIDIA GeForce GTX 960, lutris-GE-Proton8-13-x86_64

Log files

lutris -d

Video, for comparison purposes:

I have tested 3 versions of render: stock GE Proton (which comes with Lutris), stock GE Proton with dgVoodoo2 and d8vk here. So, dgVoodoo is the best in terms of rendering the game correctly (although at cost of some recording issues, like screen tear, and mouse lag), stock GE Proton is the best in terms of performance, but it cannot render fog at Chechnya map, and d8vk has the most rendering issues (maybe it's just one issue, I'm not sure). I hope you can fix it, I respect the effort to support DirectX8 games.

1. stock GE Proton gameplay

2. stock GE Proton + dgVoodoo gameplay

3. stock GE Proton + d8vk gameplay

WinterSnowfall commented 11 months ago

Thank you for your report. We'd need an apitrace of the game (capturing the issue) to look further into this.

For instructions on how to use apitrace, see: https://github.com/doitsujin/dxvk/wiki/Using-Apitrace . You'll need to use apitrace's d3d8.dll for the capture, which you can then compress and link to here.

Please also attach the log file (as file drag-and-drops) here. I can not access the pastebin link you've shared - it doesn't appear to be public.

WinterSnowfall commented 11 months ago

One thing to try here as well, I guess, is to create a blank file called dxvk.conf next to the game's executable and add the following line to it:

d3d8.managedBufferPlacement = False

Then retry playing it with d8vk. If that fixes the above clipping issues, do let me know.

AnthraxBass commented 11 months ago

One thing to try here as well, I guess, is to create a blank file called dxvk.conf next to the game's executable and add the following line to it:

d3d8.managedBufferPlacement = False

Then retry playing it with d8vk. If that fixes the above clipping issues, do let me know.

managedBufferPlacement didn't help. I also got a question regarding apitrace, the guide says: "Before the next step, make sure you disable or get rid of DXVK files first, as it's preferred that you use WineD3D to make an apitrace."

If I delete d8vk (d3d8.dll) this test will be pointless... how do i combine apitrace wrapers with d3vk ?

WinterSnowfall commented 11 months ago

managedBufferPlacement didn't help.

Alright, thank you for trying it out anyway.

If I delete d8vk (d3d8.dll) this test will be pointless... how do i combine apitrace wrapers with d3vk ?

It will not be pointless. Please play through the same areas where you saw the issue manifest with d8vk and record a trace. The issue should then reproduce on trace playback with d8vk.

Think of the trace as a VCR tape (it records d3d calls) and WineD3D/d8vk as different VCR players.

AnthraxBass commented 11 months ago

@WinterSnowfall ok, please follow the link for complete trace, passw: 2002

WinterSnowfall commented 11 months ago

Thank you for the trace. The good news is that it's nicely captured and definitely what we'd normally need.

The bad news is that I don't see any clipping on playback with d8vk. This means the problem may not be inherent to how d8vk handles rendering, but rather other factors may be at play.

We've had this apitrace situation with other games, it's not entirely unexpected - only rather unfortunate, since it will be hard to debug.

Out of curiosity, if you play it back on your system (using wine apitrace.exe replay <path_to_trace_file>), do you see any clipping issues?

AnthraxBass commented 11 months ago

@WinterSnowfall I'm only playing the game via Lutris, this is where I have all the configuration etc. I'm not sure that this command as-is (wine apitrace.exe replay ) will trigger the right ehmm... "sandbox" should i say ? Or is this command sufficient for sure?

WinterSnowfall commented 11 months ago

Or is this command sufficient for sure?

Not a Lutris user myself, but as long as the Wine prefix you are using is properly set up, the above command should be sufficient if run from the same path as the apitrace executable.

P.S.: Having the trace in the same path also saves you a lot of headache, since you can use the filename directly.

AnthraxBass commented 11 months ago

@WinterSnowfall good news that I've managed to run apitrace with the exact configuration that I use to play, bad news - I couldn't reproduce it :(

Video of apitrace replay...

WinterSnowfall commented 11 months ago

bad news - I couldn't reproduce it :(

Bad news in general, yes, but good news in the sense that there's nothing wrong with your GPU or system configuration in particular. The playback of the trace looks the same on my end.

No worries, we'll get to the bottom of it some other way eventually.

WinterSnowfall commented 10 months ago

@Blisto91 was kind enough to thrift for a retail copy of the game, however the installer seems to unceremoniously fail both in Wine and on Windows actually.

image

@AnthraxBass Are there any workarounds that need to be applied to get it going, do you know?

AnthraxBass commented 10 months ago

@WinterSnowfall hi, I'm only using Lutris for gaming purpose, I'm not good enough with vanilla Wine. I can record a Lutris tutorial on how to install GOps in there. Let me know if you'd like to see such a guide.

WinterSnowfall commented 10 months ago

@AnthraxBass No need. Luckily it seems to work if you install it on Win10 and them move it over to Wine.

I've had a look and reproduced the issue. I've also captured two similar traces, one with WineD3D and one with d8vk: globalops.tar.xz

Some additional observations: