Apalis iMX8QM lower performance on GLES 2 than GLES1

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello,

Thank you for reaching out with your performance concerns regarding the transition from OpenGL ES 1.x to 2.x on the Apalis iMX8QM module. The differences you’re observing can indeed stem from the shift to programmable shaders in OpenGL ES 2.0, which can alter performance characteristics compared to the fixed-function pipeline of OpenGL ES 1.x.

Here are some tailored suggestions to help you optimize your application:

  1. Shader Optimization: Even simple shaders can benefit from optimization. Ensure that your shaders are efficient by minimizing operations and using precision qualifiers where appropriate. This can help reduce the computational load.

  2. Efficient Buffer Management: While using glBufferSubData with GL_DYNAMIC_DRAW is suitable for dynamic data, consider exploring glMapBufferRange with flags like GL_MAP_WRITE_BIT and GL_MAP_INVALIDATE_RANGE_BIT for potentially better performance. This approach can help reduce CPU-GPU synchronization time.

  3. Batching Draw Calls: Try to reduce the number of draw calls by batching them. This can significantly decrease the overhead associated with each call, improving overall performance.

  4. Profiling and Analysis: Utilize profiling tools to pinpoint bottlenecks in your application. This can help determine if the issue lies in CPU-GPU synchronization, shader execution, or another area.

  5. Experimentation: Since the Vivante GPU driver may have specific optimizations, experimenting with different buffer usage patterns and shader configurations could yield performance improvements.

By focusing on these areas, you may be able to enhance the performance of your application. I hope these suggestions prove helpful in your optimization efforts.

Best regards,
Toradex AI Assistant

Please, also check if these links can help you solve your problem:

How to develop a Vulkan application for the Apalis I.MX8QM on embedded linux?.