This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Why my 3d game is slow only on ARM Mali GPU ?

Hi all,

 

I'm new on this forum. I'm here cuz my game (minetest) is slow on only on ARM Mali-400 MP4 GPU (on this smart console http://www.jxdofficial.com/jxd-s7800b-7-inch-quad-core-game-console.html). This 3d project uses the open source engine Irrlicht-gles. I test this game on several Android smartphones/tablets but I have only a low framerate (5-8 FPS) on this GPU. A lot of users have this problem : https://forum.minetest.net/viewtopic.php?f=3&t=9389

 

I fixed a slow framerate in my 3d GLES2 demo with my own engine: I only replaced glBufferSubData(...) by glBufferData(...) and it works. But this fix does nothing on Irrlicht-gles.

 

This is the source code of the OpenGLES 2 Driver/Renderer for Irrlicht-gles : https://github.com/zaki/irrlicht/blob/ogl-es/source/Irrlicht/COGLES2Driver.cpp.

 

Can someone take a look on it?



ps: I'm not here to blame someone and ARM products are very awesome ;)

Julia

Parents
  • If you're able to tweak your Mali-400 powered device, could you try running the Mali Graphics Debugger and check for bandwidth or overdraw issues ?

    developer.arm.com/.../mali-graphics-debugger

    Worst case, if you could at least get apitrace ( github.com/.../apitrace ) working on a Linux distribution with OpenGL ES 2.x support, and get a call trace using the OpenGL ES 2.x renderer of your game, this might be easier to understand what's going on exactly and see what could be a problem with Mali 400 devices.

    The apitrace command is :
    apitrace trace -a egl -o /tmp/output.trace YourProgram yourparameters

    I'm surprised you got better performances with glBufferData then SubData, as that tends to force the GPU to recreate yet another buffer instead of reusing the existing one.
Reply
  • If you're able to tweak your Mali-400 powered device, could you try running the Mali Graphics Debugger and check for bandwidth or overdraw issues ?

    developer.arm.com/.../mali-graphics-debugger

    Worst case, if you could at least get apitrace ( github.com/.../apitrace ) working on a Linux distribution with OpenGL ES 2.x support, and get a call trace using the OpenGL ES 2.x renderer of your game, this might be easier to understand what's going on exactly and see what could be a problem with Mali 400 devices.

    The apitrace command is :
    apitrace trace -a egl -o /tmp/output.trace YourProgram yourparameters

    I'm surprised you got better performances with glBufferData then SubData, as that tends to force the GPU to recreate yet another buffer instead of reusing the existing one.
Children