libretro / flycast

Flycast is a multiplatform Sega Dreamcast emulator. NOTE: No longer actively developed, use upstream repo for libretro from now on - https://github.com/flyinghead/flycast
http://reicast.com
GNU General Public License v2.0
152 stars 77 forks source link

Graphic glitches with GLES2 on certain games such as Cannon Spike, Virtua Tennis 2 #719

Open SumavisionQ5 opened 4 years ago

SumavisionQ5 commented 4 years ago

On devices that I have tested that use Mali-450 (Amlogic s905, s905x mostly), in Linux ARM 32bit Using GLES2, some games such as Cannon Spike, Virtua Tennis 2, Dynamite Deka EX and Zero Gunner 2 have severe graphic glitches (here is a small video showing the effect, https://youtu.be/U9psvbiNqpY I ran those Naomi games on S905 with EmuELEC developed by shantigilbert.) Both Naomi and Dreamcast version have same issue.

Maybe this is a bug similar to what shantigilbert mentioned here: https://github.com/libretro/flycast/issues/716 ?

barbudreadmon commented 4 years ago

Maybe this is a bug similar to what shantigilbert mentioned here: #716 ?

Seems likely, were those tests done before or after https://github.com/libretro/flycast/commit/64cd7e1d0a372ce904eef2b21ae793c241fc1477 ?

SumavisionQ5 commented 4 years ago

before. But I tested dreamcast versions of those games with standalone reicast before fog fix on Nov. 2018, the graphic glitches were still there. So I don't think this issue was caused by fog fix.

barbudreadmon commented 4 years ago

Ok, maybe another highp float in another fragment shader then ?

SumavisionQ5 commented 4 years ago

I have tested those games in Android on a Hi3798mv300 box with Mali 450, same issue happened.

flyinghead commented 4 years ago

These are depth fighting issues due to loss of precision. These games use huge Z values for things like the HUD. In GL3/GLES3 there's a way around the problem but not with GLES2.

SumavisionQ5 commented 4 years ago

These are depth fighting issues due to loss of precision. These games use huge Z values for things like the HUD. In GL3/GLES3 there's a way around the problem but not with GLES2.

Will it be fixed?