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

GL_EXT_draw_elements_base_vertex support?

This very nice desktop OpenGL has been ratified as a OpenGL ES extension recently.

I would like to request support for this extension since it will improve performance of my application by a very large margin on Mali hardware.

It's at the Khronos registry here. https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_elements_base_vertex.txt

Parents
  • Yes. Which we can reduce with base_vertex since at that point we can support using glMapBufferRange + unsyc flag, and remove entirely if buffer_storage is supported.

    [Edit]

    For a direct comparison between three mobile vendors I have a video showcasing three devices.

    The ODROID-XU3 with a Exynos 5420 + Mali-T628MP6

    The Nexus 5 with an Adreno 330.

    The Nexus 9 with the 64bit Denver SoC with Kepler GPU.

    Dolphin Mobile Device Comparison - Wind Waker - YouTube

    Particular information about each devices limitations in the video.

    The ODROID-XU3 is completely bottlenecked on the GPU emulation thread due to the high overhead of the Mali driver.

    The Nexus 5 is CPU emulation thread bound, with a minor bottleneck in the GPU emulation thread due to also not supporting these extensions

    The Nexus 9 is completely CPU emulation bound at this point, For particular on the Nexus 9 the application is working around Google crippling the drivers and only enabling GLES 3.1 + AEP.

    The function pointers for desktop GL functions are still available in their driver, which allows hackish use of base_vertex and buffer_storage even though they aren't exposed as extensions. If these weren't forced to be hacked around then it would have a performance hit as well. By hacking around the limitation, the Nexus 9 gets about the same speed as the Nvidia Shield Tablet which has full OpenGL 4.5.

    [/Edit]

Reply
  • Yes. Which we can reduce with base_vertex since at that point we can support using glMapBufferRange + unsyc flag, and remove entirely if buffer_storage is supported.

    [Edit]

    For a direct comparison between three mobile vendors I have a video showcasing three devices.

    The ODROID-XU3 with a Exynos 5420 + Mali-T628MP6

    The Nexus 5 with an Adreno 330.

    The Nexus 9 with the 64bit Denver SoC with Kepler GPU.

    Dolphin Mobile Device Comparison - Wind Waker - YouTube

    Particular information about each devices limitations in the video.

    The ODROID-XU3 is completely bottlenecked on the GPU emulation thread due to the high overhead of the Mali driver.

    The Nexus 5 is CPU emulation thread bound, with a minor bottleneck in the GPU emulation thread due to also not supporting these extensions

    The Nexus 9 is completely CPU emulation bound at this point, For particular on the Nexus 9 the application is working around Google crippling the drivers and only enabling GLES 3.1 + AEP.

    The function pointers for desktop GL functions are still available in their driver, which allows hackish use of base_vertex and buffer_storage even though they aren't exposed as extensions. If these weren't forced to be hacked around then it would have a performance hit as well. By hacking around the limitation, the Nexus 9 gets about the same speed as the Nvidia Shield Tablet which has full OpenGL 4.5.

    [/Edit]

Children
No data