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

Mali vs Adreno #8028

Open
mbalajee opened this issue Aug 9, 2024 · 4 comments
Open

Mali vs Adreno #8028

mbalajee opened this issue Aug 9, 2024 · 4 comments
Assignees
Labels
android Issue/feature request for Android only gpu specific This bug occurs only with a single GPU vendor. opengl Issue/request specific to OpenGL

Comments

@mbalajee
Copy link
Contributor

mbalajee commented Aug 9, 2024

⚠️ Issues not using this template will be systematically closed.

Describe the bug
High end devices (Samsung S22 ultra) fails (app crashes) to load a larger model (over 10K renderables) with the below error, (100s of these in logcat)

 Adreno-GSL              com.google.android.filament.gltf     W  <sharedmem_gpuobj_alloc:2736>: sharedmem_gpumem_alloc: mmap failed errno 12 Out of memory
 Adreno-GSL              com.google.android.filament.gltf     E  <gsl_memory_alloc_pure:2604>: GSL MEM ERROR: kgsl_sharedmem_alloc ioctl failed.
 Adreno-GSL              com.google.android.filament.gltf     W  <sharedmem_gpuobj_alloc:2736>: sharedmem_gpumem_alloc: mmap failed errno 12 Out of memory
 Adreno-GSL              com.google.android.filament.gltf     E  <gsl_memory_alloc_pure:2604>: GSL MEM ERROR: kgsl_sharedmem_alloc ioctl failed.

Loading the same model on even low end devices with Mali GPUs doesn't crash with OOM. This is from Samsung S6 Lite 2018 which loads even larger models just fine but high end devices like S22 Ultra fails with above error.

[ARM], [Mali-G72], [OpenGL ES 3.2 v1.r38p1-01bet0-mbs2v41_0.b9e42ffa6bf354232ad5ee190bbadf16], [OpenGL ES GLSL ES 3.20]

This is affecting our release since most of our customers are Samsung users with Adreno GPU. Any suggestions or help here?

@pixelflinger pixelflinger added gpu specific This bug occurs only with a single GPU vendor. opengl Issue/request specific to OpenGL android Issue/feature request for Android only labels Aug 11, 2024
@pixelflinger
Copy link
Collaborator

Looks like another driver bug. I have loaded 10K+ models on Pixel 4. Haven't tried S22. You could try our Vulkan backend, see if it helps.

@mbalajee
Copy link
Contributor Author

Vulkan backend renders the model but the model is almost unusable in Adreno GPUs. On Mali devices (such as Samsung S6 Lite), using Vulkan degrades the gesture (zoom, pan, orbit) performance. OpenGL backend on Mali devices provides better performance overall. I will try to create a sample model in a size similar to the one I have (can't share the actual model)

@mbalajee
Copy link
Contributor Author

@pixelflinger Not sure if this will help, but I found that Adreno-630 (OnePlus 6T) performs better (there was not initial lag after model is fully rendered) than Adreno-730 (Samsung S22 Ultra)

@jeanlemotan
Copy link
Contributor

We had issues with some Samsungs with Adreno that had an internal limit of 512 shaders max, but this was with OpenGL, not Vulkan. We worked around it by creating and destroying shaders per frame to stay in the 512 limit. As you can imagine, there were frequent freezes due to this. I'm not sure it's the case here though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
android Issue/feature request for Android only gpu specific This bug occurs only with a single GPU vendor. opengl Issue/request specific to OpenGL
Projects
None yet
Development

No branches or pull requests

3 participants