Avoid using a framebuffer

Updated: April 19, 2023

Using framebuffers for composition significantly increases the time required to render an image on a display.

Whenever possible, avoid using framebuffers for composition in your splash screen application. You may unknowingly create a framebuffer based on your implementation and the Screen features you use.

Here are a few techniques to help avoid the creation of a framebuffer in your splash screen application:
  • Because you're using a window buffer for a splash screen application, use a single buffer with a size that matches the video mode that's supported by the display. If you don't use the correct format, this can increase the time it takes to show content on the display. It's important to mention that the list of supported formats that's sent as "supported" to an application doesn't necessarily mean that it works on the display. It's your responsibility to test that it works.
  • The content should be full-screen and if possible, the content shouldn't be scaled. If you want to use an image that is smaller than the full-sized (full-screen) of the display, ensure that the display supports a single window when that window isn't full-sized.
  • With regards to scaling, here are a few things to remember when you want to optimize the time to show an image on the display:
    • Don't downscale a larger image on your system. We recommend that you downscale the image before putting it onto your system. If you don't, the larger file might increase the time required to load your primary IFS (increased size) and add unnecessary time to downscale and process the image.
    • When possible, use an image with the dimensions to match the resolution display (i.e., no scaling required).
    • If you must upscale, the quality of the image is often poor on high-resolution displays. It's important that you consider the tradeoff between scaling an image and the time to load an image. For example, if you scale a small image to match a higher resolution on the display, the size of the image file is smaller, but you must use CPU time to process the image. However, if you don't scale your image, then your image file size is larger, which can increase the time it takes for the primary IFS to load.
      Note: Ensure that the display controller on the display supports the amount of scaling that you require.
  • Since the buffer is for the splash screen application, ensure that you don't enable protection for the buffer. It shouldn't be necessary and could increase the time it takes to show content onto the display.

For more information about framebuffers, see Composition in the “Displaying the Contents of Windows” chapter of the Screen Developer's Guide, and Configure class subsection in the “Configuring Screen” chapter of the same guide.

For information about how to find out if your application creates a framebuffer, see Other techniques and troubleshooting in this chapter.