RPCS3 / rpcs3

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

Final Fantasy XIII broken hair rendering, among other graphical issues. #6863

Open lextra2 opened 4 years ago

lextra2 commented 4 years ago

Original PS3 01

RPCS3 (All default settings except Vulkan) 02

Xbox One X Enhanced mpv-shot0001

PS3 vs Xbox 360 ps3-xbox360

kd-11 commented 4 years ago

You have to provide a RSX capture file for us to work with.

lextra2 commented 4 years ago

You have to provide a RSX capture file for us to work with.

here you go https://drive.google.com/open?id=1HFpwsE1VqNE8H7qk1A1bXmyc18ZOcccz

this is with all the settings in the gpu tab set to default except renderer which is vulkan.

lextra2 commented 4 years ago

Added some comparison images between the emulator and a real PS3.

kd-11 commented 4 years ago

Looking at is as a "smoothness" or averaging issue, it could be caused by PS3 providing some texture filtering modes that do not exist on desktop PCs. There is no reasonable workaround for texture filtering as it is done by fixed function hardware. Or to be exact, there is no performant way of doing it without killing performance. I'll check the captures just to be sure either way.

kd-11 commented 4 years ago

A quick look and the "jaggies" are just the dither pattern used by the driver to handle Alpha-to-coverage transparency. Its supposed to be there. I know different drivers and hardware combinations have different ways of handling alpha-to-coverage, so I'll check on an NVIDIA card and see what it looks like there. The jaggy shimmering is there on all applications on RADV, even using DXVK. A quick look at the RADV source code also shows the source of this. I'll have to check NVIDIA result and AMDVLK source code for more information but I think this is not a real bug and is just the averaging implementaion. RADV just masks off the first N samples, while rpcs3 (MSAA off) uses a different method with a pseudo-randomized pattern. PS3 could be doing some kind of ROP averaging for the result to be that clean.

lextra2 commented 4 years ago

Added 2 more comparison images. Perhaps most interestingly is the fact that the xbox 360 version appears to suffer from the same issue RPCS3 does (which implies that your assumption about a hardware specific solution from the PS3 is correct). Although the xbox 360 version runs at a resolution of 1024x576, so I'm not sure how big of a role this might play,

GitArUs commented 4 years ago

I also believe that AA being broken is the cause of characters flickering/getting half transparent/going invisible in some areas, since the game uses AA for some alpha transparency effects.

This can be eliminated by switching PPU to "Interpreter (fast)".

Another thing is, with RPCS3, some 2D elements like fonts look like they are constantly "bouncing" up or down by a few pixels. This is much more obvious in fullscreen and at higher resolution scales but still happens even at a native res.

This can be eliminated by switching on "Strict Rendering Mode". Update: Strict rendering mode locks scale to 100%, setting scale to 100% without turning on strict rendering mode works for me as well.

lextra2 commented 4 years ago

@GitArUs Thanks for the suggestions. Both of these things can indeed be fixed with the settings you named, although having PPU set to "Interpreter (fast)" will eventually get you soft-locked at the end of a battle since performance is too insufficient.

GitArUs commented 4 years ago

Maybe, I just wanted to say that model flickering is most probably not related to AA (the same thing happens in ffxiii-2). And about this soft-locking - it unlocks after a while if You wait patiently (at least sometimes).

lextra2 commented 4 years ago

And about this soft-locking - it unlocks after a while if You wait patiently (at least sometimes).

Alright. Thanks for letting me know.

kd-11 commented 4 years ago

Updated ticket information with correct tags so that relevant parties can take a look. Thanks @GitArUs for the testing.

GitArUs commented 4 years ago

Regarding part: "characters flickering/getting half transparent/going invisible in some areas" - it does not happen anymore with current master branch when using LLVM PPU, in both FFXIII and FFXIII-2 it is OK (at least on linux).

Jonathan44062 commented 1 year ago

I don't know if this is related to the problem, but another graphical error that I see besides the hair, is that beast, it has like these weird lines

RPCS3 MRTC00003_screenshot_2023_02_03_22_31_23 PS3 image

Log: RPCS3.log.gz

RSX Capture: https://www.mediafire.com/file/b9uuzdsdk74s2ro/MRTC00003_20230203230344_capture.rrc/file (It gives me black screen when I try to load a RSX capture, I hope the one I send works)

I can give my save file to test, you need to play a little before reaching the enemy (It's the MRTC00003, BLUS version) https://www.mediafire.com/file/gr9ix7eixl6vqal/MRTC00003-00.rar/file