2.2.3. Configuring display settings to avoid conversions

Data conversions are not necessary if the system and your applications have correct and compatible settings. Ensure the following:

Ensure the framebuffer resolution and color format are compatible with the display controller.

The display controller might be able to display different formats and resolutions. If the framebuffer is not in a resolution and format that is compatible, a color format conversion is performed.

The following advice applies to platforms that use Linux FBDEV:

Ensure the framebuffer does not exceed the resolution of the screen.

Trying to display something larger than the resolution of the screen shall result in the image being rescaled or not being shown correctly.

Ensure the framebuffer does not exceed the color depth of the screen.

If the screen has a 16-bit color depth, using a 32-bit color framebuffer results in the display being drawn incorrectly or a color format conversion.

Converting between 32 and 16 color depths can be a very expensive process. It is typically done by the GPU, but in some cases it must be performed by the CPU. This reduces valuable compute resources.

Using a 16-bit display uses less memory and bandwidth than a 32-bit display. If however your system is limited to a 32-bit display, do not write 16-bit display data to save memory. Converting 16-bit data to 32-bit data can be an expensive process.

Ensure the drawing surface format is the same as the framebuffer format.

If the drawing surface format is different from the framebuffer format, a conversion is required to display it.


If you are using double or triple buffering, there are multiple framebuffers in memory but only one is displayed at a time.

Copyright © 2011 ARM. All rights reserved.ARM DUI 0555A