Bug #31
various issues with OIT branch on Mali GPU
100%
Description
The 'order-independent-transparency' branch appears to run correctly on Qualcomm's Adreno GPUs, but crashes in mysterious ways when run on a phone equipped with ARM's Mali GPU:
E/OpenGLRenderer: Error:glFinish::execution failed
E/OpenGLRenderer: GL error: Out of memory!
Related issues
History
Updated by Leszek Koltunski over 6 years ago
- % Done changed from 0 to 20
Debugging with a Mali Graphics Debugger 4.9.2.
It doesn't seem possible that the issue is really lack of memory. As explained in stackoverflow though (https://stackoverflow.com/questions/50492866/openglrenderer-gl-error-out-of-memory) , certain OpenGL drivers can return GL_OUT_OF_MEMORY as a sort of blanket error case though.
Currently it seems like the issue has something to do with the way SSBO index is computed in OIT fragment shaders.
Updated by Leszek Koltunski over 6 years ago
- Blocks Feature #15: Order Independent Transparency added
Updated by Leszek Koltunski over 6 years ago
- % Done changed from 20 to 60
The crash fixed with commit library|344ac0e4.
Still, on Mali GPUs things keep suspiciously flashing, (best visible in 'Triblur') so issue still kept open.
Updated by Leszek Koltunski over 6 years ago
- % Done changed from 60 to 70
Commit 2aef1f4d solves next issue which was visible only on Mali.
Still other issues exists - for example the 'Triblur' keeps flashing.
Updated by Leszek Koltunski over 6 years ago
- Subject changed from OIT branch crashes on Mali GPU to various issues with OIT branch on Mali GPU
Updated by Leszek Koltunski over 6 years ago
Questions asked:
https://www.opengl.org/discussion_boards/showthread.php/200754-Flashes-on-ARM-Mali?p=1291723
https://community.arm.com/graphics/f/discussions/10285/opengl-es-3-1-on-mali-t880-flashes?tempkey=51433e22-cd8d-4ef1-85fb-59d84f1c4ef9
DarkPhoton says this might be a 'full pipeline flush'.
Updated by Leszek Koltunski over 6 years ago
- % Done changed from 70 to 90
Commit 9d845904 fixes this on master. Still we need to port the fix to the 'order-independent-transparency' branch.
Full history in OpenGL.org forums: https://www.opengl.org/discussion_boards/showthread.php/200754-Flashes-on-ARM-Mali
Updated by Distorted Admin over 6 years ago
The commit mentioned in the previous comment did not fix the flashes on Mali T880 completely, but now I am pretty sure that commit 2301cb2f finally does.
Additionally, it is confirmed by ARM engineer ( https://community.arm.com/graphics/f/discussions/10285/opengl-es-3-1-on-mali-t880-flashes ) that this is an issue in their r12 driver. The issue is fixed in r22 (present in Samsung Android 8.0.0-based OS update for Samsung Galaxy S7).
Updated by Leszek Koltunski over 6 years ago
- Status changed from In Progress to Resolved
- % Done changed from 90 to 100
Finally resolve the issue. ( commit 6544040f makes non-postprocessed OIT work).
Still some stuff remains (confirm that the Mali driver bug is indeed gone on r22; issues with PowerVR compiler which fails to compile the OIT pass2 and pass4 shaders) but those will be tracked separately.