doitsujin / dxvk

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

Amid Evil (UE4) Yellow graphics / color corruption #1956

Closed DefectiveByDesign closed 3 years ago

DefectiveByDesign commented 3 years ago

Amid Evil on FX9800P GCN 1.2 / windows 10 / 21.2.1 has color corruption. Last tested with 1.8.1, but older version didn't work either. Version 1.0 mentions a bug fix for yellow graphics in UE4, but apparently it didn't fix Amid Evil.

That apitrace program doesn't work. I get an error: "failed to find dxgitrace.dll wrapper" No idea how to fix this when the dll is there. Maybe there's some special way to install this tool, but it isn't explained, and I just copied the files into the game directory. I doubt log files will show anything, since the game isn't crashing, just shows color corruption.

Please describe your issue as accurately as possible. If you run into a problem with a binary release, make sure to test with latest master as well.

Important: When reporting an issue with a specific game or application, such as crashes or rendering issues, please include log files and, if possible, a D3D11/D3D9 Apitrace (see https://github.com/apitrace/apitrace) so that the issue can be reproduced. In order to create a trace for D3D11/D3D10: Run wine apitrace.exe trace -a dxgi YOURGAME.exe. In order to create a trace for D3D9: Follow https://github.com/Joshua-Ashton/d9vk/wiki/Making-a-Trace. Preferably record the trace on Windows, or wined3d if possible.

Reports with no log files will be ignored.

Software information

Name of the game, settings used etc.

System information

Apitrace file(s)

Log files

doitsujin commented 3 years ago

The game is known to work on Linux, so this will almost certainly be another driver bug. The fix in 1.0 isn't game-specific so all UE4 titles should be broken on your APU if it's still the same problem. We should really just go back to ignoring Windows-only driver issues since there's nothing we can do to fix them anyway, especially on APUs that are on life support when it comes to drivers.

Also, UE4 games tend to have at least three different directories with binaries, so you'll need find the correct one to put DLLs into for apitrace to work.

DefectiveByDesign commented 3 years ago

GCN is GCN. The support misconception stems from OEMs like Dell, who pay for a provider monopoly, which isn't necessary when you can just get drivers directly from AMD. Dell might give you a year while AMD will keep supporting GCN until they declare driver EOL, which hasn't happened. Regardless, GCN 1.0 will hit EOL first, being as it doesn't support dx12, while APUs are all based on GCN 1.2+ Keep in mind AMD also sold desktop APUs directly. so Dell doesn't have a support monopoly even if they wanted it.

Anyway, let's talk about this apitrace program which is a mess. I copied the file and dll into the game's binary directory which contains AmidEvil-Win64-Shipping.exe. That is the correct main exe, AFAIK. The apitrace program however, does not do anything except throw a missing dll error that isn't missing. It doesn't even launch the game, and I used the provided command syntax. The problem might be that the program is running in the program files directory, which is normally locked unless running under administrator. If there is a specific way to run the tool correctly, it isn't made obvious. Perhaps I need to run the tool in a user directory, with only the dll in the exe folder, but that wasn't made clear.

edit: Indeed. That was the case, but apitrace only produced 0kb blank log files. Also, the game/dxvk did not exhibit color corruption and got around 7 FPS max while running. Weird. Something is still wrong with apitrace, even though it ran.

K0bin commented 3 years ago

You didn't do it correctly. Here's a guide: https://github.com/Joshua-Ashton/d9vk/wiki/Making-a-Trace

But as doitsujin said, this is probably a waste of time as the issue is most likely a driver problem.

DefectiveByDesign commented 3 years ago

I can't run wine config under windows. I did get the tool to run, as stated in my edit, but it produced 0kb files. Also, how am I supposed to use dxgi.dll? Should I copy the wrapper dlls into apitrace binary? I can't overwrite the dxvk dlls, or it won't work, afaik.

K0bin commented 3 years ago

There's a Windows section in that guide that doesn't use Wine. And yes, you have to copy over d3d11.dll, dxgi.dll and dxgitrace.dll. After that you just start the game as you would normally. Leave the apitrace tool alone.

DefectiveByDesign commented 3 years ago

Wait, wut? If you overwrite the dxvk dlls, it won't run under vulkan, and completely invalidate any dxvk related issue.

Also, IDK how this worked, but I got log files in the game directory, maybe from dxgitrace.dll, although this is clearly breaking security protocol. Of course, this might be security theater where the OS only prohibits the user and not actual program behavior. AmidEvil-Win64-Shipping_dxgi.log AmidEvil-Win64-Shipping_d3d11.log

Apparently it made a 900mb trace file on my desktop too, but the upload function says it doesn't support the file type, nor do I know if you guys want or need this 900mb file.

K0bin commented 3 years ago

Wait, wut? If you overwrite the dxvk dlls, it won't run under vulkan, and completely invalidate any dxvk related issue.

Please do that anyway. It records the D3D11 commands and those are identical regardless of whether or not DXVK is installed.

Also, IDK how this worked, but I got log files in the game directory, maybe from dxgitrace.dll, although this is clearly breaking security protocol. Of course, this might be security theater where the OS only prohibits the user and not actual program behavior.

Those log files were created by DXVK. Not sure what you're on about security. dxgitrace.dll isn't even being loaded unless you replace the dxvk dlls.

DefectiveByDesign commented 3 years ago

7zip tracefile (smaller size) 382mb https://ufile.io/5ct39l7d tar.gz (if need this specific format) 592mb https://ufile.io/sljk6v0r 2 files, 900mb=level load 169mb=menu load

I have recently tested dxvk on a PC using vega56, driver 21.2.3, and it works. So this is a driver issue. That said, Vega is a newer version of GCN. Very odd bug. To see if this was GCN 1.2 specific, I would need a Fury or 380 to compare with. I know someone with a Fury, but getting them to test it is another story, and it probably wouldn't matter regardless, being a driver bug. This can be closed if nothing can be done with it.