Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Mali G68-MP4] Dynamite Cop polygons exploding/sorting issues w/ Native Depth Interpolation #1663

Open
SeongGino opened this issue Oct 7, 2024 · 6 comments

Comments

@SeongGino
Copy link

Platform / OS / Hardware: Android 11, Retroid Pocket 4 (Dimensity 900 w/ Mali G68-MP4)

Github hash: Release 2.3 [966ff37] (standalone) / 5d719e0 (libretro)

Description of the Issue

Dynamite Cop in particular seems to exhibit some severe sorting issues when NDI is enabled, which resembles polygon explosions, making things like the stage/section select completely illegible and some corrupted graphics on the character select and certain sections. There also seems to be instances of texture "shaking".

This is observed in both standalone (hence the report here) and libretro core, in both rendering backends (GL/Vulkan), with Per-Triangle or Per-Strip sorting. (Understanding that Per-Pixel isn't really a 'thing' on mobile)

Debugging Steps Tested

  • Play the game/watch the attract demos.

Logs Gathered

See screenshots (unless logs are needed in this case)

Screenshots

(Or in this case, video.)

Full video on an offsite host, recorded directly off the device, but I've trimmed down/compressed the essential example clip here:

screen-20241007-014616-00.00.25.082-00.00.45.418_c.mp4
@SeongGino SeongGino added the bug Something isn't working label Oct 7, 2024
@flyinghead
Copy link
Owner

Why are you enabling Native Depth Interpolation?
It's off by default because it is mostly for AMD GPUs, and sometimes Intel. I don't know of any mobile GPU that needs it.

@flyinghead flyinghead removed the bug Something isn't working label Oct 7, 2024
@pantomm
Copy link

pantomm commented Oct 7, 2024

You can use Per-Pixel with vulkan

@SeongGino
Copy link
Author

SeongGino commented Oct 7, 2024

Why are you enabling Native Depth Interpolation? It's off by default because it is mostly for AMD GPUs, and sometimes Intel. I don't know of any mobile GPU that needs it.

With this hardware, it is needed at least for this game (without it, water and some other texture has visual corruption issues) and Zombie Revenge (without it, some areas exhibit other severe sorting issues on the floor, like the demo before the first level and the small warehouse after opening the shutter in the first level).

If that constitutes a separate issue then fair, but it would be lengthier/have to be spread across multiple issues.

You can use Per-Pixel with vulkan

It does technically work but does not resolve the issue - it in fact creates slightly more graphical corruption issues that are less consistent than using Per-Strip/Triangle on this hardware.

@flyinghead
Copy link
Owner

Dynamite Cop is known to use very high depth values, which cause precision loss on some hardware. Unfortunately there's nothing I can do to fix it as this is a GPU issue.

@SeongGino
Copy link
Author

SeongGino commented Oct 7, 2024

For what it's worth, Redream on the same hardware doesn't seem to exhibit any of the same problems as Flycast for this game. Without an open source to reference for that, it probably doesn't do much help (and I prefer using Flycast whenever possible anyways), but just speaking as an alternative from a user's point of view.

@pantomm
Copy link

pantomm commented Oct 8, 2024

Doesn't happen on adreno 725 with Native Depth Interpolation enabled
Screenshot_2024-10-08-12-17-32-486_com flycast emulator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants