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

Android: Black screen with post-processing #13519

Closed
Yonle opened this issue May 22, 2023 · 27 comments · Fixed by #15449
Closed

Android: Black screen with post-processing #13519

Yonle opened this issue May 22, 2023 · 27 comments · Fixed by #15449
Labels
Android Bug Issues that were confirmed to be a bug @ Client rendering High priority

Comments

@Yonle
Copy link

Yonle commented May 22, 2023

Minetest version
5.7.0
OS / Hardware

Operating system: ARM64 Android
CPU: Cortex-A53

GPU model: PowerVR GE8320, 650 MHz
OpenGL version: -

Summary

First time playing resulting in black screen. No Mods or any plugins installed yet. World created with default configuration.

Screenshot_20230522_183301

Changing camera also does not helps.

Steps to reproduce
  1. Start Minetest for the first time
  2. Create world without changing anything
  3. Get in
@Yonle Yonle added the Unconfirmed bug Bug report that has not been confirmed to exist/be reproducible label May 22, 2023
@Yonle
Copy link
Author

Yonle commented May 22, 2023

Downgrading to 5.6.1 works.

Screenshot_20230522_184730

@Yonle
Copy link
Author

Yonle commented May 22, 2023

But upgrading from 5.6.1 to 5.7.0 also leads to black screen.

@Zughy Zughy added Android @ Client rendering Regression Something that used to work no longer does labels May 22, 2023
@srifqi
Copy link
Contributor

srifqi commented May 24, 2023

I can not reproduce it (on Samsung Galaxy A72, GPU: Adreno 618). Both versions mentioned in this thread can run normally.

Have you tried to set the video driver (video_driver) to ogles1 in the 5.7.0 version? It is in the All Settings -> Advanced -> Advanced -> Graphics -> Video driver.

@Yonle
Copy link
Author

Yonle commented May 24, 2023

Have you tried to set the video driver (video_driver) to ogles1 in the 5.7.0 version? It is in the All Settings -> Advanced -> Advanced -> Graphics -> Video driver.

I did not modify anything on the settings yet, So i am doing it now.

It works, But some UI is buggy.

Screenshot_20230524_190731

@sfan5
Copy link
Collaborator

sfan5 commented May 24, 2023

ogles1 will not be supported in the future, so if it doesn't work we have to fix that anyway.
Do you have the debug.txt / log file?

@Yonle
Copy link
Author

Yonle commented May 25, 2023

debug.txt

@nininik0
Copy link

Maybe you should delete the app and then install it again or switch to OGLES2 #13580

@joshuaruxpin
Copy link

had same issue trying to run on chromebook

@Yonle
Copy link
Author

Yonle commented Jul 26, 2023

Disabling shader makes the black screen gone.

@nininik0
Copy link

Yes but disabling shader causes stuff to render in fulbright #13511 #13580

@Yonle
Copy link
Author

Yonle commented Jul 29, 2023

Yes but disabling shader causes stuff to render in fulbright #13511 #13580

Could confirm.

@Unacceptium
Copy link
Contributor

i got the same issue on my gigaset, android 9! i changed the video driver and shaders and that solved

@Zughy Zughy added this to the 5.8.0 milestone Oct 3, 2023
@Zughy Zughy added Bug Issues that were confirmed to be a bug and removed Unconfirmed bug Bug report that has not been confirmed to exist/be reproducible labels Oct 3, 2023
@grorp
Copy link
Member

grorp commented Oct 8, 2023

Unfortunately, I can't reproduce this either (OnePlus Nord CE 2 Lite / CPH2409), and the log posted by Yonle doesn't seem to contain anything useful...

@sfan5 sfan5 added the Obscure label Oct 15, 2023
@erlehmann
Copy link
Contributor

erlehmann commented Oct 15, 2023

Here is a list of mobile devices that have the PowerVR GE8320 GPU (same as the submitter):
https://mobile.phonebunch.com/phone-filter/gpu/powervr-ge8320/page/1/

I also found this PR for GLideN64 that may be related: gonetz/GLideN64#2633

Newer PowerVR devices need depth to be cleared every frame, otherwise most geometry is rendered behind the background.

It also needs fragment based depth to be disabled, otherwise geometry has various depth glitches.

Edit: See gonetz/GLideN64#2108 (comment) for screenshots of the GLideN64 bug that may or may not be related.

@Unacceptium
Copy link
Contributor

Unacceptium commented Oct 15, 2023

@erlehmann i'm not a programmer, but i can't logic out how that polygon issue related.

edit: as i said, changing video driver, fog and shaders helped me. i get that white background hud wich @Yonle screenshoted above.

@erlehmann

This comment was marked as off-topic.

@erlehmann

This comment was marked as off-topic.

@Unacceptium

This comment was marked as off-topic.

@erlehmann

This comment was marked as off-topic.

@SmallJoker
Copy link
Member

SmallJoker commented Oct 15, 2023

For those affected by this bug: Please post your GPU model (see CPU-Z app for example) and the relevant excerpt from debug.txt (and/or logcat) to narrow down whether it's a shader compiling error or related to a specific GPU.

Unfortunately there does not seem to be a Minetest developer who could reproduce this issue to work on a fix, hence community inputs are highly welcomed. Removing from the 5.8.0 milestone to not hold back its release due to a specific hardware problem of certain models.

@Unacceptium
Copy link
Contributor

the phone i reproduced the issue is a higaset gs190 wich is
SoC/CPU: MediaTek Helio A22 MT6761
GPU: Mali-G72 MP3
4 core
is this helpful?

@SmallJoker SmallJoker modified the milestones: 5.8.0, 5.9.0 Oct 15, 2023
@sfan5
Copy link
Collaborator

sfan5 commented Oct 15, 2023

the good news: I can reproduce this issue on Linux with a Mali-450 GPU and the Mesa driver (so not some proprietary stuff that's impossible to debug). That also means there's a good chance there's an actual bug.

the bad news: this board is very slow at compiling and I don't have the expertise or time to continue debugging this.

@sfan5
Copy link
Collaborator

sfan5 commented Feb 23, 2024

should be re-tested after #14338 and #14405

@Yonle
Copy link
Author

Yonle commented Feb 24, 2024

Unfortunately i no longer have the same phone to retest the new build.

@sfan5
Copy link
Collaborator

sfan5 commented Apr 12, 2024

Good news: time and motivation to re-test this came back.
More good news: disabling post-processing fixes this issue. Since it's disabled by default on Android we don't have to worry about this for now.

@grorp
Copy link
Member

grorp commented Nov 7, 2024

The post-processing pipeline creates a depth texture (not renderbuffer) for off-screen rendering (see src/client/render/secondstage.cpp)

Looking at this code:

https://github.com/minetest/minetest/blob/60cd1e452957e2e924eedf9de6b46f6eb7833ccc/irr/src/OpenGLES2/Driver.cpp#L99-L105

There can be cases with OpenGL ES 2 where no depth texture format is supported at all. This would obviously result in texture creation failing, the framebuffer would be invalid/incomplete and we'd have the issue described here.

@grorp grorp changed the title Android: Black Screen Android: Black screen with post-processing Nov 7, 2024
@sfan5
Copy link
Collaborator

sfan5 commented Nov 17, 2024

A second problem is the usage of GL_BGRA, which is an unsized format, for creating a render target. This doesn't work and never will.
The required combination for this problem to appear is:

  • GLES 2.x
  • EXT_texture_format_BGRA8888 supported
  • OES_texture_half_float not supported

edit: this might have been wrong actually, but doesn't matter now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Android Bug Issues that were confirmed to be a bug @ Client rendering High priority
Projects
None yet
Development

Successfully merging a pull request may close this issue.

10 participants