PCSX2 / pcsx2

PCSX2 - The Playstation 2 Emulator
https://pcsx2.net
GNU General Public License v3.0
11.77k stars 1.62k forks source link

Image_Load_Store graphical glitches (GT3 and GT4) #2068

Closed RAZORXKHARA33 closed 5 years ago

RAZORXKHARA33 commented 7 years ago

PCSX2 version: v1.5.0-dev-2194-gada0d5745, but also happens on earlier GIT builds, stable 1.4.0, and earlier.

PCSX2 options: EE Round: Chop/Zero EE Clamping: Full VU Round: Chop/Zero VU Clamping: Extra + Preserve Sign Frame limiting and Frame skipping disabled Vsync setting: Forced on thru Nvidia Control Panel, set to Adaptive in PCSX2 EE Cyclerate: Default VU Cycle Stealing: None INTC Spin Detection: Enabled Wait Loop Detection: Enabled Fast CDVD: Enabled mVU Flag Hack: Enabled MTVU: Enabled Manual Game Fixes: Disabled

Plugins used:

GSdx Settings: Adapter: NVIDIA GeForce GTX 1080 Renderer: OpenGL (Hardware) Interlacing: Bob tff Texture Filtering: Bilinear (PS2) Allow 8-bit textures: Enabled Large Framebuffer: Enabled (issue persists regardless of setting) Internal Resolution: 3x Native Mipmapping (Ins): Basic CRC Hack Level: Partial (OpenGL Recommended) HW Hacks: Disabled Accurate Date: Enabled Blending Unit Accuracy (High)

SPU-2X Settings: Interpolation: Catmull-Rom Disable Effects Processing: Disabled Use de-alias filter: Disabled Debug Options: Disabled Module: XAudio2 Volume: 100% Latency: 30ms Synchronizing Mode: Async Mix Audio Expansion Mode: Stereo (none, default) Use a Winamp DSP Plugin: Disabled

Description of the issue: Car bodies shimmer/flicker during races (some track textures in GT4 as well, like the roads in Opera Paris). This issue has existed ever since I started using PCSX2, but got worse with the build mentioned above in the notes. Disabling Image_Load_Store in the HW Hacks fixes the problem, but makes the game run noticeably slower in places that would already slow down, and it would slow down in places it wouldn't normally do so. I know that this is because Image_Load_Store speeds things up, but it also causes graphical glitches.

How to reproduce the issue: Use settings above and make sure Image_Load_Store, Accurate Date, and High-Accuracy Blending are enabled. Then load any race in GT3 or GT4. Most noticeable when using chase cam or roof/hood cam.

Last known version to work: None

PC specifications: CPU: Intel Core i7 4790K (4.4 GHz) RAM: 32 GB DDR3 1600 MHz GPU: Nvidia GeForce GTX 1080 Boot SSD: Samsung 950 Pro 256 GB (PCSX2 loads off of this drive) Mass Storage 1: WD Blue 1 TB 7200 RPM (games, inis, and memory cards load off of this). Windows 10 Pro 64-bit, Creators Update

MrCK1 commented 7 years ago

Try using Forced Texture Filtering. IIRC, this is similar to the issue I used to encounter.

lightningterror commented 7 years ago

Set mipmapping to off. I was able to reproduce the issue with mipmapping on. GT4 doesn't need mipmapping.

edit: Actually I take that back. The road flickering is caused by mipmapping but the car flickering is a separate issue which I was able to reproduce.

gregory38 commented 7 years ago

Do you have the issue with a lower level of accurate blending ?

lightningterror commented 7 years ago

Disabling blending fixes it. Basic blending still causes the issue.

gregory38 commented 7 years ago

So it is likely a bad interaction between DATE (with load/store image) and accurate blending. Could you confirm that it works fine without load/store image extensions

lightningterror commented 7 years ago

Yes it works fine with image load store disabled. Here is a gs dump just in case. https://drive.google.com/open?id=0B8cQAq-Ko9-uVzV4cVFtdFZoMWc

I was able to reproduce the issue only on my ntsc disc. Pal doesn't experience the issue.

RAZORXKHARA33 commented 7 years ago

Also, there seems to be something strange about the way cars in GT3 and GT4 are rendered in the garage, GT Auto, pre-race (GT4 only), showroom, etc, as the both GT3 and GT4 slow to a crawl in those scenarios when using high-accuracy blending. Medium or lower doesn't have this problem, but in races, the reflection vibrance on cars and the road surfaces is noticeably lower. That's likely for another issue, though, if it hasn't been reported yet.

I can also confirm that force-disabling Image_Load_Store in HW Hacks fixes the glitchy shimmering with high-accuracy blending and accurate date both enabled, but of course results in a slowdown.

MrCK1 commented 7 years ago

Does the other issue look similar to #1796 ? Might be the one you're thinking of.

gregory38 commented 7 years ago

Interesting, accurate blend should be disabled in draw call that use image load/store (aka DATE42 in the code). I guess I failed to do it correctly.

High level of accuracy blending could be slow.

RAZORXKHARA33 commented 7 years ago

@MrCK1 Issue #1796 only occurs if I pause the emulator and then resume. The other issue I mentioned is that the game slows to <50% speed in garage, event halls, etc. (whenever the car is shown rotating or being prepped for oil change), which has to do with something in the High-Accuracy blending. It may or may not be related to this issue (likely not).

MrCK1 commented 7 years ago

Best solution for the slowdown is to lower blending accuracy and/or resolution scaling.

mirh commented 6 years ago

Does any of the tips here improve situation?

FlatOutPS2 commented 6 years ago

Does any of the tips here improve situation?

See @lightningterror 's first comment in this issue

gregory38 commented 6 years ago

Debug is still on-going.

So far bad draw call seems to be 1188 (LT dump). This draw calls does a DATE_GL45 + sw blending (with destination alpha). A rough guess is that we use a wrong alpha value somewhere in the shader.

gregory38 commented 6 years ago

A quick note, it is potentially not a bug. Accurate DATE will enable accurate blending for the draw call too. The game uses destination alpha blending which is wrong (except in high blending accuraccy mode).So acccurate DATE mix, correct and bad blending which give us some flickering.

As a side note, il could be nice to implement 2 mode for accurate date