hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.39k stars 2.19k forks source link

Need for Speed - Most wanted: Graphics glitch when going fast #15940

Closed hrydgard closed 2 years ago

hrydgard commented 2 years ago

There's an apparently depth-dependent screen overlay that appears when you go really fast, it looks like a broken gradient typical of depth->565 or similar. Noticed when trying (and failing) to reproduce #15788 ..

image

hrydgard commented 2 years ago

Carbon is also reported to be affected.

asp0909 commented 2 years ago

pro street and undercover also with failures! it seems that it is in all need for speed! high speed effects and activate nitro! in pro street it is even worse!

hrydgard commented 2 years ago

Thanks, yeah, I have a couple of NFS games (not Carbon though) and I have repro. I'll try to fix it tomorrow. eh, or today.

hrydgard commented 2 years ago

nfsdump.zip

This looks not-so-good:

07:29:762 root         W[G3D]: Common\TextureCacheCommon.cpp:692 GetFramebufferCandidates: Multiple (3) candidate framebuffers. texaddr: 04088000 offset: 0 (256x256 stride 256, 565):
[DEPTH seq:22 rel:22 C:04000000/512(565) Z:04088000/512 X:0 Y:0 reint: false]
[DEPTH seq:0 rel:0 C:040cc000/256(565) Z:04088000/256 X:0 Y:0 reint: false]
[COLOR seq:20 rel:20 C:04088000/256(565) Z:00000000/0 X:0 Y:0 reint: false]
07:29:762 root         W[G3D]: Common\TextureCacheCommon.cpp:698 Chose candidate 0:
[DEPTH seq:22 rel:22 C:04000000/512(565) Z:04088000/512 X:0 Y:0 reint: false]

Pitch is obviously wrong, that candidate should have been discarded. But it weirdly has a higher sequence number, as if it was written to more recently, probably some kind of false positive in the deferred Z copy code..

Anyway, should be easy to work around.