Choose how to render to a display

Updated: April 19, 2023

The way you choose to render the content to a display can affect how quickly the content is rendered–the reason being that some types of rendering must load more resources and start additional device drivers.

Here are the rendering options you can use for your application:
Software rendering
For Screen, the fastest way to display content is to use software rendering. No additional drivers need to start because you simply write the content to memory.
Video capture
If you're using video capture, you can't show anything faster than the time it takes to capture the video. However, after the video frames come in, say from a camera, you can immediately show the video feed on the display. The setup time depends on your hardware, but in general, it still takes less time to set up video capture than it does to load and start device drivers, such as the ones required for OpenGL ES and OpenVG.
Blitting

The use of 2D drivers (blit and fill) is often a popular way to show content on the display, especially if you have a dedicated 2D hardware block.

If you use blitting, Screen loads all the drivers for 2D (blitting), OpenGL ES, and OpenVG at one time. It isn't recommended that you use blitting when you need to show content quickly on the display because there's a time cost for starting all the device drivers.

Khronos rendering

The use of Khronos rendering (hardware rendering with OpenGL ES or OpenVG) causes Screen to start all the drivers for 2D (blitting), OpenGL ES, and OpenVG at one time. Because all device drivers get started at one time, we don't recommend that you use OpenGL ES or OpenVG.

If you must use OpenGL ES or OpenVG, consider using precompiled shaders to help reduce the time needed to show the content on the display. Precompiled shaders are supported with OpenGL ES2 extensions (gles2 modules) and OpenGL ES3. See www.khronos.org for more information about shader compilation.
Note: Precompiled shaders are specific to a platform, software, hardware, and GPU revision.

You can generate the precompiled binary for simple shaders that Screen can use. To generate the shaders, run the screen-gles2-tools utility.

The screen-gles2-tools utility generates precompiled binaries that Screen loads when it creates a framebuffer. These precompiled shaders can save the time Screen takes to compile the source before loading it to create a framebuffer. For more information on the screen-gles2-tools utility, see the “Utilities” chapter in the Screen Developer's Guide.