Ppsspp: [Android] [Mali GPU] [OpenGL] Lastest build blackscreen on buffered rendering mode

Created on 15 May 2020  路  17Comments  路  Source: hrydgard/ppsspp

What happens?

As the title say, last working build https://github.com/hrydgard/ppsspp/commit/d4b695cb78d25730fc1f5f8ed8e14ad645f74f2b

Issue started https://github.com/hrydgard/ppsspp/commit/864d138cd95f932b91ec7a7bc738f1eaca627667

What should happen?

No blackscreen on buffered rendering mode

What hardware, operating system, and PPSSPP version? On desktop, GPU matters for graphical issues.

Android 6.0.1
OpenGL 2.0
Mali-450

Mali GPU

All 17 comments

@unknownbrackets here's the ge dump
PPSSPP GE Dump.zip
tried to different games

It's working fine on Adreno. Are you using a post-processing shader?

-[Unknown]

It's working fine on Adreno. Are you using a post-processing shader?

-[Unknown]

No, default settings only.

My ScreenRecording
recording_20200515_094046.zip
Game works fine in skip-buffered rendering also game audio also still playing while in blackscreen but not captured during screenrecording (I forget to enable audio recording 馃槄)

Tried ppsspp-v1.9.3-806-g192198ef3-android still blackscreen :(

I'm using Realme C2 Android 9 Pie and my games runs fine on buffered rendering.

@Gamemulatorer what games are you using?

@Gamemulatorer what games are you using?

All of my games are blackscreen on buffered rendering but not on skip-buffered rendering see my screenrecording above comment.

I think this issue can only reproduce on old android devices with old gpu like Mali 400 & 450 on OpenGL 2.0?

Confirmed! issue can only reproduce on Mali GPU with OpenGL 2.0, I tested the latest git build on Mali-t720 GPU with OpenGL 3.1 and it's work fine on it.

Wacky. I'll try to use my Galaxy S3 to debug this later.

Just did a quick check to confirm the repro and yeah, I got it. Getting a lot of the following:

W/PPSSPP ( 6672): [G3D] Got an error after init: 00000500 (GL_INVALID_ENUM)

So it should be fairly easy to track down when I have more time later. Looks like we're accidentally now using some feature that's too new on GLES 2.0 devices.

The error happens when doing indexed draws with index type = GL_UNSIGNED_INT. This is not supported on older GLES devices, only GL_UNSIGNED_SHORT. Should be a pretty easy fix.

Was gonna make the index format a parameter of the draw call, but in D3D9 the index format is specified when creating the index buffer! Ugh.

I think I'll just only support 16-bit indices in thin3d.

I think it makes sense to specify it on create for all backends, but yeah, 16-bit only sounds simpler...

I guess that means softgpu was broken before on GLES2...

-[Unknown]

So it seems indeed.

@hrydgard thanks! for the quick fixed.
Vampire Chronicles also works now unlike in the previous build started on ForceSoftwareRenderer implementation for this game that always stuck on blackscreen.
Screenshot_20200516-054612

That makes sense, the problem that caused the blackscreen was exactly how the software renderer was working before. Now that they're using shared code, the fix affected both.

-[Unknown]

Was this page helpful?
0 / 5 - 0 ratings