RPCS3 / rpcs3

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

Gran Turismo 6 Graphical Bugs. #12567

Open Satan86 opened 2 years ago

Satan86 commented 2 years ago

Quick summary

Gran Turismo 6 has plenty of graphical inaccuracies on RPCS3. There are a lot of different ways to trigger them and many different settings affect the game.

Details

Screen flickers when Write Colour Buffers is enabled. If WCB is disabled, Force CPU Blit can be used to fix that issue. A video will show the issue below.

Car reflections Work incorrectly.

Car Reflections images with different settings. No Extra Settings. ![No extra settings](https://user-images.githubusercontent.com/61447828/187039435-eb61db8d-e2ab-4009-a1ee-9d59a6d3f200.png) Read Colour Buffers enabled. Note the black stuff on the Car. ![Read Colour Buffers enabled.](https://user-images.githubusercontent.com/61447828/187039558-92a6be97-5558-4279-b23f-4727e21d563b.png) PS3. ![Car Reflection PS3](https://user-images.githubusercontent.com/61447828/187050225-b0fe33a3-871f-4642-9591-3927453e2781.png)

Gran Turismo 6 uses MLAA, but it does NOT render correctly under normal circumstances. There are ways to make it render, however. This is the most complicated issue with the game. With default settings, it will not have any anti-aliasing. With Write Colour Buffers enabled, MLAA only works if there are no 2D elements on screen. With Write Colour Buffers and Read Colour Buffers, it renders even with 2D elements on screen, at the cost of further broken reflections as show cased in the previous bug. The video below shows the behaviour with only WCB enabled, where 2D elements disable MLAA. The video also shows the flickering issue mentioned earlier. Epilepsy warning. https://www.youtube.com/watch?v=5dnze1i_jU4

Attach a log file

RPCS3.log.gz

Attach capture files for visual issues

https://drive.google.com/file/d/1lu-o8nywQs8xJVNkYlzmx88L-tGvR22z/view?usp=sharing This RSX capture is for the Car Reflections issue. If you want any other captures, let me know and I shall provide them.

System configuration

Ryzen 5 5600x, GTX 1050 Ti driver 516.59, Windows 11.

Other details

The car reflection issue has already been mentioned in #9133, while the MLAA issue has already been reported in #11290, albeit without some information. Let me know if I should make separate issues with each bug or add information to other, already reported issues.

kd-11 commented 2 years ago

1.RCB causes problems because of how it detects clobbered memory using tags. This is not good enough. We could just be pessimistic about it and assume everything unlocked needs a reupload, but this is tricky and will eat up performance on some games. I'll have to think about it.

  1. The reason force CPU blit works is because of 1. Since it never reads any input it always copies over an output of all black. No pixels are detected to change, so no reload.
  2. The reason reload causes flicker is because SPU is writing stuff (postfx output)_ while RSX is reading it (RCB reload). There are no good solutions here that don't introduce slowdown. I guess I can add the required synchronization and put it under strict mode to get rid of 1 and 3.
Kwangnofx commented 1 year ago

imageimageimageimage

Try this setting with game version 1.05 Work very great crash one time at first startup but never happen again Play like 36 hours

coffeecodeconverter commented 9 months ago

in case anyone comes across this - GT6 seems "fairly" stable so far (no crashing, no random freezes, and no flickering) with the following settings:

RPCS3 version - 0.0.30-15965-fa7ef870 Alpha

GT6 ROM version 1.0.0 (fyi, for me at least, every update from and including 1.02 to 1.22 - attempting to run the game in between each update - all prevented it from even reaching the intro screen)

RPCS3 Settings:

   CPU
      PPU Decoder: Recompiler (LLVM)
      SPU Decoder: Recompiler (LLVM)
      SPU XFloat Accuracy: Accurate XFloat
      Enable SPU Loop Detection = YES 
      SPU Block Size:  Safe
      preferred SPU Threads: Auto

   GPU
      Renderer: Vulkan 
      Aspect Ratio: 16:9
      Frame Limit: auto
      Anisotropic Filter: auto 
      anti-aliasing: auto 
      ZCULL Accuracy: approximate 
      shader quality: auto 
      3d: disabled 
      default resolution: 1280 x 720
      resolution scale (disable strict mode): 150% (1920 x 1080) - or whatever your monitor is / can handle. 
      resolution scale threshold: 16 x 16
      output scaling: bilinear 
      share mode: async (multi threaded) 
      additional Settings:
         Asynchronous Texture Streaming - ENABLED 
         Multi threaded RSX - DISABLED - <<< THIS IS THE SETTING THAT CAUSED MOST FLICKERING 

   AUDIO
      audio out: Cubeb
      buffering: enable Buffering

   ADVANCED
      accurate RSX reservation access - ENABLED 
      PPU non-java mode fixup - ENABLED
      PPU/SPU LLVM Pecompilation - ENABLED
      firmware libraries:
         Liblv2.sprx
      RSX FIFO Accuracy: Fast 

hardware spec: Laptop Ryzen 7840 Hs - with 780m iGPU 16 GB 5600 MTS DDR5 RAM Nvidia 4060 mobile GPU 8GB GDDR6 Crucial P3 Pro M.2 SSD - 5000 read 3500 write

casioforever commented 9 months ago

in case anyone comes across this - GT6 seems "fairly" stable so far (no crashing, no random freezes, and no flickering) with the following settings:

RPCS3 version - 0.0.30-15965-fa7ef870 Alpha

GT6 ROM version 1.0.0 (fyi, for me at least, every update from and including 1.02 to 1.22 - attempting to run the game in between each update - all prevented it from even reaching the intro screen)

RPCS3 Settings:

   CPU
      PPU Decoder: Recompiler (LLVM)
      SPU Decoder: Recompiler (LLVM)
      SPU XFloat Accuracy: Accurate XFloat
      Enable SPU Loop Detection = YES 
      SPU Block Size:  Safe
      preferred SPU Threads: Auto

   GPU
      Renderer: Vulkan 
      Aspect Ratio: 16:9
      Frame Limit: auto
      Anisotropic Filter: auto 
      anti-aliasing: auto 
      ZCULL Accuracy: approximate 
      shader quality: auto 
      3d: disabled 
      default resolution: 1280 x 720
      resolution scale (disable strict mode): 150% (1920 x 1080) - or whatever your monitor is / can handle. 
      resolution scale threshold: 16 x 16
      output scaling: bilinear 
      share mode: async (multi threaded) 
      additional Settings:
         Asynchronous Texture Streaming - ENABLED 
         Multi threaded RSX - DISABLED - <<< THIS IS THE SETTING THAT CAUSED MOST FLICKERING 

   AUDIO
      audio out: Cubeb
      buffering: enable Buffering

   ADVANCED
      accurate RSX reservation access - ENABLED 
      PPU non-java mode fixup - ENABLED
      PPU/SPU LLVM Pecompilation - ENABLED
      firmware libraries:
         Liblv2.sprx
      RSX FIFO Accuracy: Fast 

hardware spec: Laptop Ryzen 7840 Hs - with 780m iGPU 16 GB 5600 MTS DDR5 RAM Nvidia 4060 mobile GPU 8GB GDDR6 Crucial P3 Pro M.2 SSD - 5000 read 3500 write

Which Version ? Physical Or Digital ? Eur Or US ? Which Update v1.02 or v1.05 ?

kryst4line commented 8 months ago

@coffeecodeconverter This worked for me on 7800x3D, thank you very much!!

goldstinger commented 5 months ago

in case anyone comes across this - GT6 seems "fairly" stable so far (no crashing, no random freezes, and no flickering) with the following settings:

RPCS3 version - 0.0.30-15965-fa7ef870 Alpha

GT6 ROM version 1.0.0 (fyi, for me at least, every update from and including 1.02 to 1.22 - attempting to run the game in between each update - all prevented it from even reaching the intro screen)

RPCS3 Settings:

   CPU
      PPU Decoder: Recompiler (LLVM)
      SPU Decoder: Recompiler (LLVM)
      SPU XFloat Accuracy: Accurate XFloat
      Enable SPU Loop Detection = YES 
      SPU Block Size:  Safe
      preferred SPU Threads: Auto

   GPU
      Renderer: Vulkan 
      Aspect Ratio: 16:9
      Frame Limit: auto
      Anisotropic Filter: auto 
      anti-aliasing: auto 
      ZCULL Accuracy: approximate 
      shader quality: auto 
      3d: disabled 
      default resolution: 1280 x 720
      resolution scale (disable strict mode): 150% (1920 x 1080) - or whatever your monitor is / can handle. 
      resolution scale threshold: 16 x 16
      output scaling: bilinear 
      share mode: async (multi threaded) 
      additional Settings:
         Asynchronous Texture Streaming - ENABLED 
         Multi threaded RSX - DISABLED - <<< THIS IS THE SETTING THAT CAUSED MOST FLICKERING 

   AUDIO
      audio out: Cubeb
      buffering: enable Buffering

   ADVANCED
      accurate RSX reservation access - ENABLED 
      PPU non-java mode fixup - ENABLED
      PPU/SPU LLVM Pecompilation - ENABLED
      firmware libraries:
         Liblv2.sprx
      RSX FIFO Accuracy: Fast 

hardware spec: Laptop Ryzen 7840 Hs - with 780m iGPU 16 GB 5600 MTS DDR5 RAM Nvidia 4060 mobile GPU 8GB GDDR6 Crucial P3 Pro M.2 SSD - 5000 read 3500 write

Hello, fellow person here that has been following GT6 development on & off here for half a decade at this point for it to reach a state where it's readily usable & available on my hardware. Can confirm that these settings work better than the current settings listed on the Wiki.

Specs: Windows 10 Pro 64-bit on Desktop Computer Intel Core i7-7700 @ 3.60GHz, 4 core, 8 logical processors 16gb RAM DDR4 Nvidia GeForce GTX 1070 Both GT6 Data & Emulator on HDD hardware (Seagate 2tb)

Tested on BCUS98296 (NA Physical Release) manually patched to 1.05.

Current settings on wiki will see an average of 15-20fps, constant flickering in specific tracks or certain sections of track (London City is a big offender, nearly unplayable, same with Trial Mountain), and frame dips below 10fps during some car reward screens. As well as a slew of incorrect car model mappings and shading.

Tested these settings provided here, and saw an average of 30-35fps, no more screen flickering, and car model mappings and shading fixed. Very refreshing to see this game above 30fps on older hardware. If you have the above stated issues with reaching the intro screen, run the game using the settings stated in the wiki first and create a game save, and then run using the settings here after the save is made.

Now, these settings does corrupt/break some of the images in the game for the car icons, portraits for races, and icons for track brandings, stuff like that comparative to the Wiki-suggested settings, but does not have a negative impact on the performance and is well worth the trade-off.

coffeecodeconverter commented 1 month ago

Which Version ? Physical Or Digital ? Eur Or US ? Which Update v1.02 or v1.05 ?

version 1.0.0 (as stated) any and all version updates crashed. so 1.0.1 crashed, 1.0.2 crashed, and so on, every update, tested each in between. 1.0.0 was the only version that worked.

and European Version.

and physical version of the ROM, not the digital version

Evolution0 commented 1 month ago

in case anyone comes across this - GT6 seems "fairly" stable so far (no crashing, no random freezes, and no flickering) with the following settings:

RPCS3 version - 0.0.30-15965-fa7ef870 Alpha

GT6 ROM version 1.0.0 (fyi, for me at least, every update from and including 1.02 to 1.22 - attempting to run the game in between each update - all prevented it from even reaching the intro screen)

RPCS3 Settings:

   CPU
      PPU Decoder: Recompiler (LLVM)
      SPU Decoder: Recompiler (LLVM)
      SPU XFloat Accuracy: Accurate XFloat
      Enable SPU Loop Detection = YES 
      SPU Block Size:  Safe
      preferred SPU Threads: Auto

   GPU
      Renderer: Vulkan 
      Aspect Ratio: 16:9
      Frame Limit: auto
      Anisotropic Filter: auto 
      anti-aliasing: auto 
      ZCULL Accuracy: approximate 
      shader quality: auto 
      3d: disabled 
      default resolution: 1280 x 720
      resolution scale (disable strict mode): 150% (1920 x 1080) - or whatever your monitor is / can handle. 
      resolution scale threshold: 16 x 16
      output scaling: bilinear 
      share mode: async (multi threaded) 
      additional Settings:
         Asynchronous Texture Streaming - ENABLED 
         Multi threaded RSX - DISABLED - <<< THIS IS THE SETTING THAT CAUSED MOST FLICKERING 

   AUDIO
      audio out: Cubeb
      buffering: enable Buffering

   ADVANCED
      accurate RSX reservation access - ENABLED 
      PPU non-java mode fixup - ENABLED
      PPU/SPU LLVM Pecompilation - ENABLED
      firmware libraries:
         Liblv2.sprx
      RSX FIFO Accuracy: Fast 

hardware spec: Laptop Ryzen 7840 Hs - with 780m iGPU 16 GB 5600 MTS DDR5 RAM Nvidia 4060 mobile GPU 8GB GDDR6 Crucial P3 Pro M.2 SSD - 5000 read 3500 write

RPCS3 version 0.0.33-16917

Flickering in races, slowdown to 1 FPS in car purchase scene/wheel purchase scene, odd reflections in some glass (Fairlady Z 71' headlight glass)

Everything else is considerably better over wiki settings but its a tradeoff between broken shading (blown out sun glare, broken paint, blocky reflections) and being unplayable.

Tested on BCUS98296 patch 1.05

Specs: Windows 10 x64 Ryzen 7 3700X RX 6900XT 32GB DDR4 RPCSX3 & Game are running off of a Samsung 990 Pro 2TB (read/write should NOT be an issue)