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.11k stars 2.16k forks source link

Capcom Classics Collection Reloaded graphical glitches in menu #13357

Open Panderner opened 4 years ago

Panderner commented 4 years ago

There's a graphical glitches as seen in menu screen in Capcom Classics Collection Reloaded: ezgif com-resize

nassau-tk commented 4 years ago

Will this issue happen what kind of backend? May be, OpenGL is happen and Vulkan is not happen.

ghost commented 4 years ago

There's a graphical glitches as seen in menu screen in Capcom Classics Collection Reloaded: ezgif com-resize

ge dump?

Panderner commented 4 years ago

There's a graphical glitches as seen in menu screen in Capcom Classics Collection Reloaded: ezgif com-resize

ge dump?

recording.ppdmp.zip yes sir @Gamemulatorer

ghost commented 4 years ago

ge dump?

recording.ppdmp.zip yes sir @Gamemulatorer

Can't load your ge dump Screenshot_20200830-082955

nassau-tk commented 4 years ago

@Gamemulatorer

How about by this data? ULJM05104.zip

Panderner commented 4 years ago

@Gamemulatorer

How about by this data? ULJM05104.zip

I'm using USA version of this game @nassau-tk.

ghost commented 4 years ago

@Gamemulatorer

How about by this data? ULJM05104.zip

It's load 🙂 Screenshot_20200830-122012

hrydgard commented 4 years ago

What hardware are you seeing this glitch on? GE dump looks good on nvidia.

EDIT: Actually looks a bit different:

ULJM01441_00000

Panderner commented 4 years ago

I'm using Realme C2 in OpenGL.

hrydgard commented 4 years ago

OK so a PowerVR GE8320. I'll try on a Huawei phone with PowerVR I have later.

nassau-tk commented 4 years ago

@hrydgard

I'm using SONY Xperia SO-02K & RADEON RX5700XT PC. The issue happen both device. When it's helpful, I'm happy.

Panderner commented 4 years ago

@hrydgard

I'm using SONY Xperia SO-02K & RADEON RX5700XT PC. The issue happen both device. When it's helpful, I'm happy.

@nassau-tk have you tried in all backends?

ghost commented 4 years ago

Also happen on Mali GPU's

nassau-tk commented 4 years ago

@Panderner @Gamemulatorer @hrydgard

Yes, I tried OpneGL & Vulkan both backends on Xperia. OpenGl happen the issue. Vulkan don't happen the issue. And,I tested Capcom Classic Collection (ULJM05104). May be it's a Japanese model. But, May be same system I think. Because, It happen same issue.

I tested Windows10(64-bit) D3D9 & D3D11 too. D3D9 is not drawing corectly. D3D11 is drawing corectly. Dump files here.

ULJM05104_Windows10_64bit_D3D11_OK.zip ULJM05104_Windows10_64bit_D3D9_NG.zip

nassau-tk commented 4 years ago

@hrydgard

Oh...Yes.

OS: Windows10(64-bit) CPU: Intel i7-4770K GPU: NVIDIA GeForce GTX750Ti

OS: Windows10(32-bit) CPU: Intel Celeron G1610 GPU: Intel HD Graphic(On board Chip)

These spec PC are not happen glitched on the menu screen.

CapcomClassicsCollection_intel_nvidia

Android 9.0 / SD835 / Adreno540 is still happening!!

nassau-tk commented 4 years ago

I'm come back home and retested on my PC. PPSSPP v1.10.3-709 OS: Windows10(64-bit) CPU: Ryzen7 3800X GPU: RADEON RX5700XT

In game like this. jdsra-qphjk

But, Dump file is not appear glitched. ULJM05104_0001.zip

Panderner commented 4 years ago

@nassau-tk have you tried all other backends on windows?

nassau-tk commented 4 years ago

@Panderner

Yes,I tested on My PC. "Windows10(64-bit) / Ryzen7 3800X / RADEON RX5700XT"

I wrote above.

I tested Windows10(64-bit) D3D9 & D3D11 too. D3D9 is not drawing corectly. D3D11 is drawing corectly. Dump files here.

CapcomClassicCollection_OpenGL_menu CapcomClassicCollection_Vulkan_menu CapcomClassicCollection_D3D9_menu CapcomClassicCollection_D3D11_menu

nassau-tk commented 4 years ago

This glitch is not reproduce on GE debbuging from dump file. (I tested on RADEON/GeForce both.) It can be show only on the playing screen.

unknownbrackets commented 3 years ago

For me, there's no flicker in the latest git build. It looks fine on all backends except Direct3D 9. It also looks fine on mobile (Adreno.)

Direct3D 9 seems to be having trouble due possibly to the default depth value of buffers. It draws the missing rings using a >= depth test, but the depth is flat at -1 (translated from 0 and expressed 16-bit space.) This should clamp, though, since the clamp flag is on.

The depth buffer should have zero at this point (it's not getting cleared each frame, though.) But D3D9 has the zero that isn't really zero - the bottom of the 1/4 slice. This makes the "clamp simulation" fail since it's a >= test. If the clamp simulation wasn't there, it'd still fail, because -1 isn't within 0 - 65535 anyway.

Since these draws are flat, in theory we could detect they have equal Z and clamp them in the vertices.

-[Unknown]

nassau-tk commented 3 years ago

My Galaxy S20 is still happen the blinking glitch on OpenGL.

v1.11.2-75

unknownbrackets commented 3 years ago

Maybe it's a driver thing and we'll have to round depth values? It is using >= and this requires essentially an == 0, maybe it's just z fighting.

-[Unknown]

Panderner commented 3 years ago

Here's a working GE dump for USA version ULUS10134_0001.ppdmp.zip

unknownbrackets commented 3 years ago

Does working mean that you see the glitches in when viewing that GE frame dump?

-[Unknown]

nassau-tk commented 3 years ago

@unknownbrackets

Oops, my report is meaning japan ver.

https://user-images.githubusercontent.com/48179091/108013418-05627d00-704f-11eb-9664-035c474217fc.mp4

Panderner commented 3 years ago

My POCO M3 had less flickers in OpenGL but my Realme C2 had lots of flickers. Screenshot_2021-02-16-14-49-11-65_2f85358b2198d26f8aca533d68bee793

nassau-tk commented 3 years ago

I tested on my Windows PC again. (Ryzen + RADEON)

It still happen the issue on OpenGL.

samosaphile commented 3 years ago

This issue is still happening to me on my 730g snapdragon adreno 618 device. Pixel 4a using vulkan backend. I tried using opengl it seems to draw / render mostly accurately but there's still flickering going on.

ghost commented 2 years ago

This is also broken/missing on background in mali gpu vulkan but can workaround by DisableAccurateDepth

Vulkan Screenshot_2021-10-27-13-21-42-082_org ppsspp ppsspp Vulkan DisableAccurateDepth enable but flickering a lot! Screenshot_2021-10-27-13-22-35-600_org ppsspp ppsspp OpenGL slightly flickering Screenshot_2021-10-27-13-21-23-816_org ppsspp ppsspp Software the most stable Screenshot_2021-10-27-13-19-28-493_org ppsspp ppsspp

unknownbrackets commented 2 years ago

If this sorta works with skewed depth (i.e. disabled accurate depth), I assume it's probably that the depth range for both cases gets clamped to 0, so depth is "kinda" clamped. Flicker is probably due to when that range clamping doesn't cause the values to match.

Presumably this only works properly where depth clamp is supported. We might be able to rewrite a flat Z, though - there'd be no risk of deforming if it was flat. Anyway, there are more ideas in #11399, iirc.

-[Unknown]

nassau-tk commented 2 years ago

Yes, My Galaxy S20 has a flickering on OpenGL.