RPCS3 / rpcs3

PlayStation 3 emulator and debugger
https://rpcs3.net/
GNU General Public License v2.0
15.43k stars 1.92k forks source link

[AMD] Sonic Unleashed [BLES00425] Shadows\artifacts flickering #7746

Closed TowelPower closed 4 years ago

TowelPower commented 4 years ago

Hey, I am attempting to run Sonic Unleashed on the newest builds but it seems that when launching the game, I get some serious rendering problems in the game, black lines or shapes just flying all over the game's screen, seems like they are casting from the moving objects in the game such as rings.

Upon testing and examining. the regression gets to be first introduced in build 0.0.6-8349, the regression may be still seen in the most up to date builds as well. The regression is non exist in builds 0.0.6-8341 and below.

regressiob

Log for bad build RPCS3.log.gz

Log for good build RPCS3.log.gz

Specs: Windows 10 64-bit Intel I7 8700 AMD R9 390 16GB RAM

Megamouse commented 4 years ago

6164

AniLeo commented 4 years ago

@kd-11

Cervoxx commented 4 years ago

My game is running fine on build v0.0.9-9889-6bd96a45.AppImage, not getting the same visual issues here. Only difference I can tell from a quick skim is a difference in serial number for our games.

Video: https://streamable.com/1cqpp

Serial: BLUS30244

Logs: https://files.catbox.moe/msu5t5.gz

RainbowCookie32 commented 4 years ago

Might be an issue with AMD drivers, since you are running an Nvidia card, and OP an AMD one

TowelPower commented 4 years ago

I do suspect that this is an AMD exclusive bug, I have met another person online with an AMD GPU who shares the same rendering issues as I do.

kd-11 commented 4 years ago

We'll need an audit of affected AMD generations. The workaround I removed in that PR was costly for performance so I would not like to re-enable for all GCN generations. Also need confirmation if its fine on RADV.

TowelPower commented 4 years ago

How may one post an GPU audit such as you request? Is it done by the RSX debugger?

RainbowCookie32 commented 4 years ago

By testing which AMD cards have the issue as far as I know. Not all architectures may have it

TowelPower commented 4 years ago

Ah I see! Then consider adding r7 360 to the list!

RainbowCookie32 commented 4 years ago

RX 570 on Linux, RADV LLVM 9.0.1. The issue is not there image

AniLeo commented 4 years ago

Probably exclusive to the proprietary driver.

Does not happen on R9 280X, RADV LLVM 9.0.1 mesa-git 20.1.

TowelPower commented 4 years ago

What AMD driver are you using? Might worth trying on my end to determine the root of the problem. I also have suspicions that it's only the amd 300x series that are affected.

RainbowCookie32 commented 4 years ago

Both Ani and I are using Linux Mesa drivers

AniLeo commented 4 years ago

I remember this happening on Windows with my GPU, I'm pretty sure it's not GPU architecture specific (or at least not specific to one or two GPU archs) but rather a proprietary driver issue.

kd-11 commented 4 years ago

In that case a renderdoc capture of this would help. If it's easily demonstrable it makes more sense to file a bug report with the trace. @TowelPower Install renderdoc 1.5 and follow the quick start guide here. I'll file the complaint with AMD.

TowelPower commented 4 years ago

Alright! Will do then once I'm home!

TowelPower commented 4 years ago

I made a capture with the best of my abilities, if anything is missing and if i should check on more options in the renderdoc, lmk! Hope you can find this helpful! https://files.catbox.moe/dtny47.zip

kd-11 commented 4 years ago

Thanks. Capture is fine, but unfortunately renderdoc refuses to open it locally because the GPU is different (I have polaris). Maybe RSX capture can work for us? I wanted to annotate the bad draw calls for the AMD driver team to easily fix the problem. You can save a RSX capture file by going to view->debugger and clicking the 'RSX capture' button when the broken scene shows up.

TowelPower commented 4 years ago

There you go! unfortunately due to the game crashing everytime im taking a screenshot, it was difficult to capture a too disrobed scene, but I hope this would still suffice!

TowelPower commented 4 years ago

Does the RSX log that I provided loads? Does it show anything, let me know if I should grab a better one or even a few of them!

kd-11 commented 4 years ago

RSX dump is ok, forgot to update this issue. There are some other bugs I need to look into before I can report this though.

TowelPower commented 4 years ago

Haha that's okay, thank you for looking into this!

windwhirl94 commented 4 years ago

Since this is still open, figured I'd check it.

My specs: Windows 10 Ryzen 5 3600 16 GB RAM Radeon RX 580 8GB with 20.4.1 driver

This issue doesn't seem to happen on 0.0.9-10220, while using nearly the same settings as OP (GPU texture scaling setting is set to "true" in my case, though, and I remember a toggle for that being somewhere, but I can not find it on RPCS3 settings) RPCS3.log

TowelPower commented 4 years ago

Seems like it just might be a r9 3xx exclusive issue I would assume then! Thank you for sharing your experience with running the game on your specs, it is very much appreciable!

TowelPower commented 4 years ago

Any there updates? no rush though, I understand that the RPCS devs are very busy and do their best to address a billion of different issues, concerns and features during the development of the software

TowelPower commented 4 years ago

I should have mentioned that the issue occurs also in OpenGL when a graphic card is not selected

opengl

TowelPower commented 4 years ago

I have suspicions that these glitches are not shadows specific artifacts anymore

4

image

windwhirl94 commented 4 years ago

I did a quick test on my older rig for this with the latest RPCS3 release (0.0.10-10494) CPU: Core i3-4330 RAM: 32 GB Windows 10 Pro 1909 GPU: Radeon R7 260X, 20.5.1 drivers

Shadows flickering and exploding (I think that was the term?) happens there too. Looking at the comments here, the affected GPUs so far (R9 390, R7 360 and R7 260X) seem to be exclusively second generation GCN. I'll see if I can get it tested during the weekend on ubuntu and see if it behaves differently under Linux.

TowelPower commented 4 years ago

I did a quick test on my older rig for this with the latest RPCS3 release (0.0.10-10494) CPU: Core i3-4330 RAM: 32 GB Windows 10 Pro 1909 GPU: Radeon R7 260X, 20.5.1 drivers

Shadows flickering and exploding (I think that was the term?) happens there too. Looking at the comments here, the affected GPUs so far (R9 390, R7 360 and R7 260X) seem to be exclusively second generation GCN. I'll see if I can get it tested during the weekend on ubuntu and see if it behaves differently under Linux.

Thank you for the extra input and testing!!!! its very helpful, thank you for contributing into this case!

windwhirl94 commented 4 years ago

I did a quick test on my older rig for this with the latest RPCS3 release (0.0.10-10494) CPU: Core i3-4330 RAM: 32 GB Windows 10 Pro 1909 GPU: Radeon R7 260X, 20.5.1 drivers

Shadows flickering and exploding (I think that was the term?) happens there too. Looking at the comments here, the affected GPUs so far (R9 390, R7 360 and R7 260X) seem to be exclusively second generation GCN. I'll see if I can get it tested during the weekend on ubuntu and see if it behaves differently under Linux.

Tested with Ubuntu 20.04 on RPCS3 build 0.0.10-10526. Mesa 20.2.0-devel. OpenGL only, Vulkan was not supported (a driver issue, most likely). Cleared all the caches before testing. The issue doesn't happen there.

Captura de pantalla de 2020-06-20 14-23-06 Log: Ubuntu-RPCS3.log Also attaching driver info, since this one is not the one that comes by default on ubuntu, but rather from PPA repositories Ubuntu Radeon driver info: RPCS3 test-R7 260X-Ubuntu driver info.txt

I also did a retest on Windows (Radeon Adrenaline driver 20.5.1), but with RPCS3 updated to build 10526 to match. Vulkan ran the same as last time (if I remember correctly, I had only tested Vulkan last time around), but OpenGL did some weird thing that I don't even know what to think of. Also, almost immediately crashed the moment I started using Radeon ReLive to record. 2020 06 20-15 25 mp4_snapshot_01 29 416 Windows-RPCS3.log EDIT: Also, I just realized that I forgot to get a RSX capture. I'll try to get one later, since right now that computer is in use by someone else.

kd-11 commented 4 years ago

Try with this build https://www.dropbox.com/s/a2haefr0r6gv2me/rpcs3-no-restarts.7z?dl=1

TowelPower commented 4 years ago

Try with this build https://www.dropbox.com/s/a2haefr0r6gv2me/rpcs3-no-restarts.7z?dl=1

So I downloaded your EXE file and applied it on the latest rpcs3 build available , unbelievably, it works! thank you so much!! What technically have you done to resolve this?

windwhirl94 commented 4 years ago

Try with this build https://www.dropbox.com/s/a2haefr0r6gv2me/rpcs3-no-restarts.7z?dl=1

I can confirm it fixed the shadow flickering issue on Vulkan for my R7 260X on Windows

kd-11 commented 4 years ago

That confirms my suspicion then. There is a hardware bug in older generations of GCN and we had a workaround for it until it seemingly got fixed. I guess they only fixed it on polaris/vega drivers since RX series doesn't have the problem. Radv has had a workaround for this for a long time which is why it works just fine.

TowelPower commented 4 years ago

That confirms my suspicion then. There is a hardware bug in older generations of GCN and we had a workaround for it until it seemingly got fixed. I guess they only fixed it on polaris/vega drivers since RX series doesn't have the problem. Radv has had a workaround for this for a long time which is why it works just fine.

Huh!! Thank you so much for the elaboration, very interesting indeed! I really appreciate all of your efforts to investigate this very strange issue as far as to come with a such detailed knowledgeable conclusion! Your contribution to this community and the development of the Rpcs3 is beyond incredible and honorable, I'll forever be grateful for your discovery on this very case. What would you consider being your next plans involving this regression/bug? Wolud they be implemented in the next builds? Or must it take a different approach to resolve this problem?

kd-11 commented 4 years ago

I implemented the fix for it many years ago but it is currently not enabled for any GPU family. I just need to re-enable it for affected GPUs. From looking at this thread it seems to affect all pre-polaris cards when using the official proprietary drivers. I had filed a bug report with AMD and they did fix the issue, but seemingly only on polaris and newer was what was fixed.

AniLeo commented 4 years ago

Probably worth filing a new issue mentioning the one they already fixed saying it's still an issue on older GCN

TowelPower commented 4 years ago

I implemented the fix for it many years ago but it is currently not enabled for any GPU family. I just need to re-enable it for affected GPUs. From looking at this thread it seems to affect all pre-polaris cards when using the official proprietary drivers. I had filed a bug report with AMD and they did fix the issue, but seemingly only on polaris and newer was what was fixed.

Hopefully they will take it to their attention and do work on a resolve! Thank you for doing this!

kd-11 commented 4 years ago

I've enabled the workaround for all GPUs before polaris when using AMD proprietary drivers. If anyone with GCN1.0 or 3.0 can prove they are not affected, contact me to exclude them from the list. Note that the workaround will negatively impact performance so it is better to have some cards excluded than not. Afaik GCN3.0 (R9 285, R9 380) is extremely similar to polaris compared to earlier generations, it would be nice to have data for it for any potential bug report.

TowelPower commented 4 years ago

I've enabled the workaround for all GPUs before polaris when using AMD proprietary drivers. If anyone with GCN1.0 or 3.0 can prove they are not affected, contact me to exclude them from the list. Note that the workaround will negatively impact performance so it is better to have some cards excluded than not. Afaik GCN3.0 (R9 285, R9 380) is extremely similar to polaris compared to earlier generations, it would be nice to have data for it for any potential bug report.

Yikes, that ain't good! But I truly understand