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

GPUParticle2D Visibility and Crash Issues with gl_compatibility Rendering Method #94915

Open
epsilonmb opened this issue Jul 29, 2024 · 4 comments

Comments

@epsilonmb
Copy link

Tested versions

Godot 4.2.2 stable

System information

Samsung Galaxy M20 SM-M205N (Android 10), iPhone 15

Issue description

  • Android: GPUParticle2D is invisible when using the gl_compatibility Rendering Method.
  • iPhone 15: Application crashes when using gl_compatibility with GPUParticle2D.
  • GPUParticle2D works correctly with the mobile Rendering Method on both platforms.
  • Previously, gl_compatibility was recommended to fix FPS drops on Android (ref: Critical FPS drop on Android devices #94261).
  • A similar issue was resolved by disabling shader cache (Project Settings -> General -> Rendering -> Shader Compiler -> Shader Cache -> Enabled), but this solution didn't work here. (ref: Android Export, renderer gl_compatibility: glb with skeleton3d and GPUParticles3D invisible on the second run of the app #82419)
  • If this is related to "Shadow", "glow", and "DOF BLUR" not being available for OpenGL (mentioned in the same issue), are there any workarounds? For instance, avoiding certain process material settings?

Steps to reproduce

  1. Create a new Godot project.
  2. Add particle_torch.tscn to the project.
  3. Export the project for Android and iOS.

Minimal reproduction project (MRP)

ParticleBug.zip

@AThousandShips
Copy link
Member

Would you be able to test this with rc1? I can't test on iOS or Android at the moment myself, and there's been several bugs fixed in 4.3 related to at least Android

Could you please list some more hardware details about the android device? There's been bugs involving Adreno 5XX devices especially

@epsilonmb
Copy link
Author

I've conducted tests using Godot version 4.3 rc1 on the following Android devices:

Galaxy M20 (SM-M205N)
GPU: Mali-G71 MP2
Specs: https://www.gsmarena.com/samsung_galaxy_m20-9506.php
Galaxy A32 (SM-A325N)
GPU: Mali-G52 MC2
Specs: https://www.gsmarena.com/samsung_galaxy_a32-10753.php

In both cases, with the rendering method set to gl_compatibility, the particles remain invisible. This behavior is consistent with what I observed in version 4.2.2, indicating that the issue persists in 4.3 rc1.

@clayjohn
Copy link
Member

clayjohn commented Jul 30, 2024

Related to: #88816, #87352

For iOS, some improvements are discussed here: #89072 but would need further testing/validation, also related for iOS #88745 and #91436 (cherrypick for 4.2.2 that should have avoided the crash)

@Alex2782
Copy link
Contributor

Alex2782 commented Aug 1, 2024

Should we deactivate GPUParticles like on Adreno 3xx when there are crashes?

	// Adreno 3XX compatibility
	bool disable_particles_workaround = false; // set to 'true' to disable 'GPUParticles'

https://github.com/Alex2782/godot/blob/aed6b023f59f748b81af62774b57ba0c63c8b5b6/drivers/gles3/storage/config.h#L95

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

No branches or pull requests

4 participants