Joshua-Ashton / d9vk

A Direct3D9 to Vulkan layer using the DXVK backend. [Upstreamed to DXVK]
https://github.com/doitsujin/dxvk
zlib License
831 stars 42 forks source link

GTA IV - flashing rectangles on light sources on thin bar on top of the screen #344

Closed xhoneybear closed 4 years ago

xhoneybear commented 5 years ago

Please describe your issue as accurately as possible.

When playing GTA IV with wined3d, flashing rectangles on light sources (like halogens, indoor lamps) and sometimes in cutscenes as well on e.g. sky or walls (noticed in one Manny's mission and in bank in Three Leaf Clover) appear on whole screen. EDIT: now I noticed that it's actually that's sequence of horizontal stripes where it does and does not happen, but that is not a topic about wined3d anyway When I installed d9vk 0.13f, the problem seemed to disappear, until now when I noticed it appear on d9vk 0.20, but only on thin bar on top of the screen. I thought that maybe the issue is with GNOME's polybar somehow conflicting, but it's thicker than the glitching area, so I doubt it. Screenshots: https://imgur.com/a/nbdXg5L They've been taken by the door of the first safehouse, at Hove Beach, Broker, but you can as well reproduce it inside of safehouses and in alleys with these lights on the walls.

Software information

Grand Theft Auto IV, patch 7 (version 1.0.7.0), settings maxed out, fullscreen, RealityIV 2.0 timecyc mod + SMAA injector (it happens without mods as well, so this is not the cause, I'm sure)

System information

Apitrace file(s)

I was unable to reproduce the issue with wined3d and trace d3d9.dll and I find it strange because wined3d always had these bugs on whole screen, yet now there were none. hmu though if I need to send trace files anyway, I will arrange reproducing the bug and I will send the file

Log files

If any more info is needed, just tell me - I'll provide needed info and/or files :)

DaRkL3AD3R commented 5 years ago

This looks exactly like the rasterization bugs present on Maxwell+ GPUs when certain overlapping shaders are used in the same spot. The emulator CEMU had this most noticeable in the lava regions of Breath of the Wild. They were able to fix the issue through some shader code to block things from rendering all at once in these areas.

K0bin commented 5 years ago

Maybe Nvidia isn't fine with resource hazards after all.

xhoneybear commented 5 years ago

If it's what you mean, I tried with d3d9.hasHazards flag set to False as well and the result was just the same, nothing really changed

pchome commented 5 years ago

FYI Those glitches disappearing with wined3d + libstrangle + PICMIP=-1. But not with D9VK and MipMapLodBias forced.

GTA IV: EFLC screenshot w/ many light sources (wined3d, libstrangle):

K0bin commented 5 years ago

d3d9.hasHazards currently has no effect on Nvidia.

xhoneybear commented 5 years ago

@pchome oh, got it, but still d9vk would probably be my choice anyway cause performance is massively better, I can play maxed out smoothly and on wined3d it's unplayable in rain for example, but anyway. that's good to know you can fix it here ^^ I think I could test 0.13f again and see if I really had no such problem in this version and I'll let you know, I could have maybe overlooked it because I started playing missions and stuff since I installed 0.20 as this version fixed memory allocation problems for me that were causing crashes (might have introduced sporadic texture glitching, but maybe it would happen on 0.13f too if not these crashes) so that's on plus for 0.20 EDIT: tested 0.13f and it was happening here as well... so yes, I overlooked And I'll also test EFLC too, as ugh... EFLC is ported a bit differently, it's a better port than a base game (better optimization, less bugs, memory leaks), so it's also worth noting I guess. I'll let you know in a minute ^^ EDIT: yes, happens in TLAD as well, both as DLC and as standalone EFLC - not related to straight up messed GTA IV port then I guess @K0bin oh alright, I see then, good to know :)

pchome commented 5 years ago

@lostinmymind

but anyway. that's good to know you can fix it here

Don't get me wrong, I provided this info to help developers localize the problem. Not as solution or suggestion to use wined3d.

xhoneybear commented 5 years ago

yep, got it, just noted that it's good to know that it's fixable ;) out of curiosity I'll try with lower resolution too and maybe windowed as well, I'll see if it makes any difference :) EDIT: it doesn't. both lowering the resolution and running in window don't fix the issue. it might be dumb that I even tried this but I am just trying to try everything to help and this is the only way I can, my coding skills and knowledge in this topic aren't good enough to even try fixing it ;/

NorbertHarangozo commented 5 years ago

It's visible on AMD as well: asd

xhoneybear commented 5 years ago

@pchome I tried reproducing the way you fixed glitching on wined3d, but I had no success, either crashing when setting libstrangle to a value different than 75 FPS (my screen's refresh rate) and with 75 FPS set it would just be the same as before, glitching out like crazy. If you could give me some instructions how exactly you did fix it, please tell me, maybe I did something wrong...

--OFFTOP-- btw you didn't have any problems with radar from the start or did you fix it somehow? these lines of map outside it are kinda annoying. I also noticed that when wrapping DX9 to DX10/11 with dgVoodoo2 and using DXVK these lines are on the opposite sides of the radar and thinner, but idk what that could possibly mean. I think on Windows there is no issue with that. just to mention - wrapping GTA IV with dgVoodoo2 is unplayable (image is very bright, project 2dfx's LOD lights visible through buildings and then almost instant crash), but at least I did some kind of homebrew testing I guess ;p

pchome commented 5 years ago

@lostinmymind That screenshot was taken a year ago, I don't remember was it early Proton version(3.16 ?) or wine-staging. Along with the other steps required to launch GTA IV, the only additional setting was libstrangle and PICMIP=-1 environment variable.

If you don't able to reproduce, then likely something was changed in newer Wine/Proton versions.

xhoneybear commented 5 years ago

@pchome do you still have GTA IV or EFLC maybe? if so I'd really love to see if you're able to reproduce this with current Wine Staging or Proton and tell what GPU you have or so, because it might be Wine/Proton version but might also be configuration-specific, I don't know... just wondering. I was playing GTA IV on Fedora when Wine was in version 3.x and these lines were still here in IV and glitching was the same, unfortunately I didn't test the fix you posted because I had no clue about it. I was just taking it for granted, what you're getting for trying to play on Linux ;p

xhoneybear commented 5 years ago

hmm that's strange... I had to reset wineprefix so I deleted windows folder, registry files and stuff like this and, like before, installed DirectX via installer from GTA V's folder to fix sound issues in GTA V and inability for SMAA injector to load in GTA IV, installed D9VK and... performance is fine but glitching is the same as on wined3d :/ reinstalled D9VK and didn't work :( I'm wondering what I've messed up... Could be graphics drivers too cause they got updated to version 435.something EDIT: I downgraded drivers and it didn't help, it's my bad that it doesn't work now I guess but just wondering why. I also downgraded Wine but it didn't work again, not even backing up windows folder and registry files helped... that's strange ;-; tried with latest master compiled with mingw (without it, it wouldn't compile) and performance is ~6 FPS lower and it doesn't fix the problem Fun fact: this glitching doesn't occur (not even on top) when a glitch makes game not load many elements such as map, HUD frame, player model, far and close ped models, phone, message icon etc. EDIT 2: I just made a fresh new Wineprefix and reinstalled ALL games and installed DirectX (tried installing Visual C++ as well) and it still went back to how it was before installing D9VK. I am legitimately confused what happened, I also tried downgrading Vulkan loader (32-bit) and it didn't work :(

xhoneybear commented 4 years ago

okay as I mentioned in issue #367 the new bug was fault of Nvidia driver, so that isn't relevant to this problem nor anything, this is to be closed. I guess the problem from the topic exists still but I'll check again in a while and I will tell

NorbertHarangozo commented 4 years ago

Here's an apitrace to reproduce the issue.

Joshua-Ashton commented 4 years ago

Should be fixed in master, feel free to re-open if you can still repro it.