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 Export, renderer gl_compatibility: glb with skeleton3d and GPUParticles3D invisible on the second run of the app #82419

Closed
robertomollo opened this issue Sep 27, 2023 · 9 comments · Fixed by #88573

Comments

@robertomollo
Copy link

robertomollo commented Sep 27, 2023

Godot version

4.1.1

System information

ubuntu 22.04.3

Issue description

The 3D objects con huesos and particles are not visible in the second run of the exported app, they are only visible in the first run after installing the app.
This only happens when Godot 4.1.1 is configured with "Rendering Method.mobile: gl_compatibility" and not with "Rendering Method.mobile: mobile". This only happens when exporting to Android and not to Linux or Windows.
I realized the following:
-On Android in the "Applications > Storage" section of my app, if I delete "application data" not "cache", the app works without problems, but on the second run after "delete data", it appears again the problem. Apparently if there is data, it resubmits the reported failure, until "delete data".
The problem is replicated in: Samsung A22 with Android 13, Samsung SM-T220 with Android 13, in Samsung A20s with Android 11, the reported problem does not occur.
-With Godot 3.5.2 this problem does not occur. Also note that on Android in the "Applications>Storage, Data" section this is always at 0 B unlike with Godot 4.1.1 in the second execution of the app, it has data and it is necessary to "Delete data" so that it does not present the reported failure.

Steps to reproduce

The second time the app is run, the reported failure appears.

Minimal reproduction project

prueba_linux.zip

@bitsawer
Copy link
Member

Does fully clearing the app data or uninstalling it and then disabling shader cache and re-exporing it help? You can disable shader cache by unchecking Project Settings -> General -> Rendering -> Shader Compiler -> Shader Cache -> Enabled.

@SirTodd
Copy link

SirTodd commented Sep 27, 2023

I have a published app since Godot 4.0, and I am almost sure this started happening in 4.1. In older devices it will crash the app entirely instead of not displaying the particles, even though the first time it appears correctly. Most likely shader cache issue.

@robertomollo
Copy link
Author

Does fully clearing the app data or uninstalling it and then disabling shader cache and re-exporing it help? You can disable shader cache by unchecking Project Settings -> General -> Rendering -> Shader Compiler -> Shader Cache -> Enabled.

Thank you very much for your prompt response and accurate response. I tried it many times and the error did not appear again.
Would this only be a temporary solution for the reported problem?

@robertomollo
Copy link
Author

I have a published app since Godot 4.0, and I am almost sure this started happening in 4.1. In older devices it will crash the app entirely instead of not displaying the particles, even though the first time it appears correctly. Most likely shader cache issue.

Greetings. Confirmed with what you say. In Godot 4, I did not have these problems, they appeared from version 4.1. "Shadown", "glow", "DOF BLUR" are not yet available for "Opengl"

@Zireael07
Copy link
Contributor

This needs to be labeled as a regression then

@AndyAstrand
Copy link

Visiting here from issue #80057, I can confirm that disabling the Shader Cache does fix the problem. The skeleton both stationary and animated is now visible on the device with or without remote debug in use. I'll track this issue to be aware of when the issue gets fixed and I can re-enable it again. It would be nice to know what the consequences are for having it turned off.

@Calinou
Copy link
Member

Calinou commented Oct 2, 2023

It would be nice to know what the consequences are for having it turned off.

Disabling shader cache means that shader compilation stutter (when seeing new shaders, particles, etc) may occur every time the project runs, instead of only occurring the first time you run a project.

The GPU driver may have its own shader caching mechanism, but this is not guaranteed to work consistently.

@Arthas92t
Copy link
Contributor

Arthas92t commented Feb 19, 2024

@Calinou @robertomollo i fixed this issue, tested on vivo 1907, vsmart active 3, samsung a12 and few more devices. Pls check if it work for you.
here is the fix #88573

@SinaZK
Copy link

SinaZK commented Jul 11, 2024

Is there any chance this fix get cherry picked for next 4.1 maintenance release?

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

Successfully merging a pull request may close this issue.

9 participants