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

Faced with a problem "HandleAllocator arena is full, using slower system heap" #5758

Closed
xarlammm opened this issue Jul 6, 2022 · 5 comments
Assignees

Comments

@xarlammm
Copy link

xarlammm commented Jul 6, 2022

Everything worked great until I loaded a relatively heavy model. The
"E/Filament: in allocateHandleSlow:82
reason: HandleAllocator arena is full, using slower system heap. Please increase the appropriate constant (e.g. FILAMENT_OPENGL_HANDLE_ARENA_SIZE_IN_MB).
E/Filament:
A/libc: Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x7776435000 in tid 13032 (ugmentedreality), pid 13032 (ugmentedreality)"
error occurs with the loadGlb() function. What to do in such a situation? I'm adding the package to build.gradle. Using 3D Viewer on android.

@pixelflinger
Copy link
Collaborator

Can you provide more detail about the crash?

  • the full log (as an attachment please)
  • information about your device

Could you send us the model that causes the crash?

@xarlammm
Copy link
Author

xarlammm commented Jul 8, 2022

  1. Лог - log.txt
  2. Xiaomi 11T ( Android 12, Miui 13.0.2)
  3. Модель - room.zip

@pixelflinger
Copy link
Collaborator

Ah, the problem is actually this message:

E/Filament: Panic
    in flush:88
    reason: Backend CommandStream overflow. Commands are corrupted and unrecoverable.
    Please increase FILAMENT_MIN_COMMAND_BUFFERS_SIZE_IN_MB (currently 1 MiB).
    Space used at this time: 4761104 bytes

The model is just too big. We have a pending change that will allow you to configure this buffer at runtime -- however, I would strongly recommend to fix your model. These are mobile devices with limited resources, you shouldn't use models with so many draw calls. You need to use a library that optimizes your model geometry.

@pixelflinger
Copy link
Collaborator

I did a test incrementing FILAMENT_MIN_COMMAND_BUFFERS_SIZE_IN_MB from 1 to 3, and FILAMENT_RENDER_PASS_SIZE_IN_MB from 3 to 4 as well as FILAMENT_PER_FRAME_COMMANDS_SIZE_IN_MB from 2 to 3, and the model was displayed. It has over 600 draw calls.

@xarlammm
Copy link
Author

xarlammm commented Jul 12, 2022

Thank you for the answer, which library can you recommend for optimizing the glb model?
It is desirable that it was under Android

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

No branches or pull requests

3 participants