rpcs3 icon indicating copy to clipboard operation
rpcs3 copied to clipboard

Far Cry 4 broken graphics

Open xddxd opened this issue 4 years ago • 6 comments

Far Cry 4 BLES02011 has game breaking graphical issues. They can be partially fixed by enabling write color buffers, however WCB massively degrades the performance, increases the texture cache size and increases the number of flushes, and in some areas the texture upload time skyrockets to over 100ms. Attached is the log and renderdocs with WCB on and off, and a renderdoc from the PC version. RPCS3.log.gz https://www.dropbox.com/s/qqj43qv62k7vjvl/rdc.7z

Specs: Ryzen 7 2700 RX 580 20.5.1 Windows 10 2004

xddxd avatar Jun 08 '20 16:06 xddxd

Pictures for comparison: WCB ON unknown unknown (2) WCB OFF unknown 3 unknown (1)

xddxd avatar Jun 09 '20 06:06 xddxd

#10772 needs to be fixed before i can test

Jacoby1218 avatar Aug 28 '21 10:08 Jacoby1218

Now @jacob1218 and @xddxd ? Any update?

marcoluc97 avatar Aug 29 '21 21:08 marcoluc97

RPCS3.log Game doesn't get to the menus.

xddxd avatar Aug 30 '21 06:08 xddxd

Specs(Link 17)

NVIDIA GeForce GTX 1650 4 GB GDDR6 (Intel UHD controller) Intel Core i5 10th Gen 10500H (2.50 GHz) 8 GB Memory with 256 GB PCIe SSD Window 10 Home Version 21H2 Build 19044.1706

I just spent the last 48 hours troubleshooting this same thing. Made some progress I though I'd share here. AMD processors have TSX instructions, and appear not to have this problem rendering, when enabled (Seems to be Vulkan only). Still some weird frame buffers with these settings, but may be playable.

Content of .yml config file.

" Core: PPU Decoder: Recompiler (LLVM) PPU Threads: 2 PPU Debug: false PPU Calling History: false Save LLVM logs: false Use LLVM CPU: "" Max LLVM Compile Threads: 4 PPU LLVM Greedy Mode: false PPU LLVM Precompilation: true Thread Scheduler Mode: Operating System Set DAZ and FTZ: false SPU Decoder: Recompiler (LLVM) SPU GETLLAR polling detection: false SPU Debug: false MFC Debug: false Preferred SPU Threads: 3 SPU delay penalty: 3 SPU loop detection: true Max SPURS Threads: 4 SPU Block Size: Safe Accurate GETLLAR: false Accurate SPU DMA: false Accurate Cache Line Stores: false Accurate RSX reservation access: true SPU Verification: true SPU Cache: true SPU Profiler: false MFC Commands Shuffling Limit: 0 MFC Commands Timeout: 0 MFC Commands Shuffling In Steps: false Enable TSX: Disabled Accurate xfloat: false Approximate xfloat: true Relaxed xfloat: true Accurate PPU 128-byte Reservation Op Max Length: 0 Stub PPU Traps: 0 Full Width AVX-512: false PPU LLVM Java Mode Handling: true Use Accurate DFMA: true PPU Set Saturation Bit: false PPU Accurate Non-Java Mode: false PPU Fixup Vector NaN Values: false PPU Accurate Vector NaN Values: false PPU Set FPCC Bits: false Debug Console Mode: false Hook static functions: false Libraries Control: [] HLE lwmutex: false SPU LLVM Lower Bound: 0 SPU LLVM Upper Bound: 18446744073709551615 TSX Transaction First Limit: 800 TSX Transaction Second Limit: 2000 Clocks scale: 100 Sleep Timers Accuracy: Usleep Only Performance Report Threshold: 500 Enable Performance Report: false Assume External Debugger: false VFS: Enable /host_root/: false Initialize Directories: true Limit disk cache size: true Disk cache maximum size (MB): 5120 Video: Renderer: Vulkan Resolution: 1280x720 Aspect ratio: 16:9 Frame limit: Auto MSAA: Disabled Shader Mode: Async Shader Recompiler Write Color Buffers: true Write Depth Buffer: false Read Color Buffers: true Read Depth Buffer: false Log shader programs: false VSync: false Debug output: false Debug overlay: false Renderdoc Compatibility Mode: false Use GPU texture scaling: false Stretch To Display Area: false Force High Precision Z buffer: false Strict Rendering Mode: false Disable ZCull Occlusion Queries: false Disable Vertex Cache: false Disable FIFO Reordering: false Enable Frame Skip: false Force CPU Blit: false Disable On-Disk Shader Cache: false Disable Vulkan Memory Allocator: false Use full RGB output range: true Strict Texture Flushing: false Disable native float16 support: false Multithreaded RSX: true Relaxed ZCULL Sync: true Enable 3D: false Debug Program Analyser: false Accurate ZCULL stats: false Consecutive Frames To Draw: 1 Consecutive Frames To Skip: 1 Resolution Scale: 150 Anisotropic Filter Override: 0 Texture LOD Bias Addend: 0 Minimum Scalable Dimension: 708 Shader Compiler Threads: 0 Driver Recovery Timeout: 1000000 Driver Wake-Up Delay: 1 Vblank Rate: 60 Vblank NTSC Fixup: false DECR memory layout: false Allow Host GPU Labels: false Disable MSL Fast Math: false Software VkSemaphore: false Vulkan: Adapter: NVIDIA GeForce GTX 1650 with Max-Q Design Force FIFO present mode: false Force primitive restart flag: false Force Disable Exclusive Fullscreen Mode: false Asynchronous Texture Streaming 2: false Enable FidelityFX Super Resolution Upscaling: false FidelityFX CAS Sharpening Intensity: 50 Asynchronous Queue Scheduler: Fast Performance Overlay: Enabled: false Enable Framerate Graph: false Enable Frametime Graph: false Framerate datapoints: 50 Frametime datapoints: 170 Detail level: Medium Framerate graph detail level: All Frametime graph detail level: All Metrics update interval (ms): 350 Font size (px): 10 Position: Top Left Font: n023055ms.ttf Horizontal Margin (px): 50 Vertical Margin (px): 50 Center Horizontally: false Center Vertically: false Opacity (%): 70 Body Color (hex): "#FFE138FF" Body Background (hex): "#002339FF" Title Color (hex): "#F26C24FF" Title Background (hex): "#00000000" Shader Compilation Hint: Position X (px): 20 Position Y (px): 690 Shader Loading Dialog: Allow custom background: true Darkening effect strength: 30 Blur effect strength: 0 Audio: Renderer: Cubeb Audio Provider: CellAudio RSXAudio Avport: SPDIF 0 Dump to file: false Convert to 16 bit: false Audio Channels: No downmix Master Volume: 100 Enable Buffering: true Desired Audio Buffer Duration: 150 Enable Time Stretching: false Time Stretching Threshold: 15 Microphone Type: "Null" Microphone Devices: "@@@@@@@@@@@@" Music Handler: Qt Input/Output: Keyboard: "Null" Mouse: Basic Camera: "Null" Camera type: Unknown Camera flip: None Camera ID: Default Move: "Null" Buzz emulated controller: "Null" Turntable emulated controller: "Null" GHLtar emulated controller: "Null" Pad handler mode: Single-threaded Pad handler sleep (microseconds): 1000 System: License Area: SCEA Language: English (US) Keyboard Type: English keyboard (US standard) Enter button assignment: Enter with cross Console time offset (s): 0 Net: Internet enabled: Disconnected IP address: 0.0.0.0 DNS address: 8.8.8.8 IP swap list: "" PSN status: Disconnected Miscellaneous: Automatically start games after boot: true Exit RPCS3 when process finishes: false Start games in fullscreen mode: true Prevent display sleep while running games: true Show trophy popups: true Show shader compilation hint: false Use native user interface: true GDB Server: 127.0.0.1:2345 Silence All Logs: false Window Title Format: "FPS: %F | %R | %V | %T [%t]" Log: {} "

Highlighted the settings that fixed it for me. The threshold of the scale resolution should be slightly lower than the smaller number of the base resolution. This will get rid of the transparent frame in the top left corner. Write Color Buffers and Resolution Scaling set to 100% in GPU tab, and Read Color Buffer in Advanced.

image

image

Before

image

And the results.

image

image

Still some frame buffers, but a step in the right direction.

image

Problem appears to be problem with Vulkan handling the textures.

Have tried different renders, OpenGl throws an error. Tried installing old firmware, and old emulator, no luck.

Did read something about rolling back drivers "I can confirm that rolling back to the 466.77 drivers completely fixed the constant crashing I was having on the most recent NVIDIA drivers."(Link 5).

Every error in the references was thrown trying to find a configuration that would work. Posting it here, in case it helps determine the issue, and in case anyone wants to read the stuff I found, looking for a fix.

This config allows the game to load to the first checkpoint, making troubleshooting easier, as you don't have to re-watch the intro 100 times, like I did.

My laptop has 2 GPUs, going to see if Intel has the same problems with Vulkan.

I don't know what to try from here, might roll back drivers, but I felt I made progress, and would share. Hope this helps someone.

UPDATE

New settings giving better results. image image

Updated settings

" Core: PPU Decoder: Recompiler (LLVM) PPU Threads: 2 PPU Debug: false PPU Calling History: false Save LLVM logs: false Use LLVM CPU: "" Max LLVM Compile Threads: 0 PPU LLVM Greedy Mode: false PPU LLVM Precompilation: true Thread Scheduler Mode: Operating System Set DAZ and FTZ: false SPU Decoder: Recompiler (LLVM) SPU GETLLAR polling detection: false SPU Debug: false MFC Debug: false Preferred SPU Threads: 0 SPU delay penalty: 3 SPU loop detection: true Max SPURS Threads: 6 SPU Block Size: Safe Accurate GETLLAR: false Accurate SPU DMA: false Accurate Cache Line Stores: false Accurate RSX reservation access: true SPU Verification: true SPU Cache: true SPU Profiler: false MFC Commands Shuffling Limit: 0 MFC Commands Timeout: 0 MFC Commands Shuffling In Steps: false Enable TSX: Disabled Accurate xfloat: false Approximate xfloat: false Relaxed xfloat: true Accurate PPU 128-byte Reservation Op Max Length: 0 Stub PPU Traps: 0 Full Width AVX-512: false PPU LLVM Java Mode Handling: true Use Accurate DFMA: true PPU Set Saturation Bit: false PPU Accurate Non-Java Mode: false PPU Fixup Vector NaN Values: true PPU Accurate Vector NaN Values: false PPU Set FPCC Bits: false Debug Console Mode: false Hook static functions: false Libraries Control: [] HLE lwmutex: false SPU LLVM Lower Bound: 0 SPU LLVM Upper Bound: 18446744073709551615 TSX Transaction First Limit: 800 TSX Transaction Second Limit: 2000 Clocks scale: 100 Sleep Timers Accuracy: Usleep Only Performance Report Threshold: 500 Enable Performance Report: false Assume External Debugger: false VFS: Enable /host_root/: false Initialize Directories: true Limit disk cache size: true Disk cache maximum size (MB): 5120 Video: Renderer: Vulkan Resolution: 1280x720 Aspect ratio: 16:9 Frame limit: Auto MSAA: Auto Shader Mode: Async with Shader Interpreter Write Color Buffers: true Write Depth Buffer: false Read Color Buffers: true Read Depth Buffer: false Log shader programs: false VSync: false Debug output: false Debug overlay: false Renderdoc Compatibility Mode: false Use GPU texture scaling: false Stretch To Display Area: true Force High Precision Z buffer: false Strict Rendering Mode: false Disable ZCull Occlusion Queries: false Disable Vertex Cache: false Disable FIFO Reordering: false Enable Frame Skip: false Force CPU Blit: false Disable On-Disk Shader Cache: false Disable Vulkan Memory Allocator: false Use full RGB output range: true Strict Texture Flushing: false Disable native float16 support: false Multithreaded RSX: true Relaxed ZCULL Sync: false Enable 3D: false Debug Program Analyser: false Accurate ZCULL stats: false Consecutive Frames To Draw: 1 Consecutive Frames To Skip: 1 Resolution Scale: 150 Anisotropic Filter Override: 0 Texture LOD Bias Addend: 0 Minimum Scalable Dimension: 81 Shader Compiler Threads: 0 Driver Recovery Timeout: 1000000 Driver Wake-Up Delay: 1 Vblank Rate: 60 Vblank NTSC Fixup: false DECR memory layout: false Allow Host GPU Labels: true Disable MSL Fast Math: false Software VkSemaphore: false Vulkan: Adapter: NVIDIA GeForce GTX 1650 with Max-Q Design Force FIFO present mode: false Force primitive restart flag: false Force Disable Exclusive Fullscreen Mode: false Asynchronous Texture Streaming 2: false Enable FidelityFX Super Resolution Upscaling: true FidelityFX CAS Sharpening Intensity: 50 Asynchronous Queue Scheduler: Safe Performance Overlay: Enabled: false Enable Framerate Graph: false Enable Frametime Graph: false Framerate datapoints: 50 Frametime datapoints: 170 Detail level: Medium Framerate graph detail level: All Frametime graph detail level: All Metrics update interval (ms): 350 Font size (px): 10 Position: Top Left Font: n023055ms.ttf Horizontal Margin (px): 50 Vertical Margin (px): 50 Center Horizontally: false Center Vertically: false Opacity (%): 70 Body Color (hex): "#FFE138FF" Body Background (hex): "#002339FF" Title Color (hex): "#F26C24FF" Title Background (hex): "#00000000" Shader Compilation Hint: Position X (px): 20 Position Y (px): 690 Shader Loading Dialog: Allow custom background: true Darkening effect strength: 30 Blur effect strength: 0 Audio: Renderer: Cubeb Audio Provider: CellAudio RSXAudio Avport: SPDIF 0 Dump to file: false Convert to 16 bit: false Audio Channels: Downmix to Stereo Master Volume: 100 Enable Buffering: true Desired Audio Buffer Duration: 150 Enable Time Stretching: false Time Stretching Threshold: 15 Microphone Type: "Null" Microphone Devices: "@@@@@@@@@@@@" Music Handler: Qt Input/Output: Keyboard: "Null" Mouse: Basic Camera: "Null" Camera type: Unknown Camera flip: None Camera ID: Default Move: "Null" Buzz emulated controller: "Null" Turntable emulated controller: "Null" GHLtar emulated controller: "Null" Pad handler mode: Single-threaded Pad handler sleep (microseconds): 1000 System: License Area: SCEA Language: English (US) Keyboard Type: English keyboard (US standard) Enter button assignment: Enter with cross Console time offset (s): 0 Net: Internet enabled: Disconnected IP address: 0.0.0.0 DNS address: 8.8.8.8 IP swap list: "" PSN status: Disconnected Miscellaneous: Automatically start games after boot: true Exit RPCS3 when process finishes: false Start games in fullscreen mode: true Prevent display sleep while running games: true Show trophy popups: true Show shader compilation hint: true Use native user interface: false GDB Server: 127.0.0.1:2345 Silence All Logs: false Window Title Format: "FPS: %F | %R | %V | %T [%t]" Log: {} "

References:

  1. https://forums.rpcs3.net/archive/index.php/thread-181086-5.html
  2. https://forums.rpcs3.net/archive/index.php/thread-182910.html
  3. https://forums.rpcs3.net/archive/index.php/thread-177361-15.html
  4. https://forums.rpcs3.net/archive/index.php/thread-173257-7.html
  5. https://forums.rpcs3.net/archive/index.php/thread-173257-9.html
  6. https://forums.rpcs3.net/showthread.php?mode=linear&tid=202236&pid=312265
  7. https://github.com/RPCS3/rpcs3/issues/6004
  8. https://github.com/RPCS3/rpcs3/issues/8786
  9. https://github.com/RPCS3/rpcs3/issues/1891
  10. https://github.com/RPCS3/rpcs3/issues/6037
  11. https://github.com/RPCS3/rpcs3/issues/6007
  12. https://github.com/RPCS3/rpcs3/issues/5965
  13. https://github.com/RPCS3/rpcs3/issues/10620
  14. https://github.com/RPCS3/rpcs3/issues/2359
  15. https://learnopengl.com/Advanced-OpenGL/Depth-testing
  16. https://www.youtube.com/watch?v=qe6giFIj5gg
  17. https://www.newegg.com/black-msi-gf-series-gf63-thin-10sc-222-gaming-entertainment/p/N82E16834156013

slmpersonal avatar May 13 '22 05:05 slmpersonal