Most of the techniques we described are upfront considerations you can iterate with when you design and
implement your system.
As mentioned earlier, many of the techniques described suggest areas to optimize your application. If you
still find that your splash screen application isn't showing your content on the display in an optimal time,
here are some other suggestions to help you to find areas to optimize your system:
-
Determine if your splash screen application has inadvertently used composition
(created a framebuffer) when rendering an image to a display. Because there's time required to set
up the framebuffer, in general, the use of framebuffer increases the time it takes to show content
on the display. To determine if a framebuffer was created, run your splash screen application, and
immediately after it completes, check if there are window entries under the following folder:
/dev/screen/0
If there are any entries, you should investigate to see what is causing the framebuffer to be created.
-
If your hardware supports hardware pipelines and you require multiple, visible windows, consider
using the hardware pipelines to do the composition rather than creating a framebuffer. This technique
can help to show content on the display more quickly. For more information about using pipelines, see
the
Composition
section in the
Displaying the contents of windows chapter of the Screen Developer's Guide.
-
Use tools such as tracelogger
to trace events and to get measurements
on your system. You can use the measurements to help identify latencies in your startup time
and areas that you look at optimizing. Both tools are also useful when you want to identify areas
to further optimize.
-
Use slog2info and screeninfo to help debug your splash screen
application. For more information about debugging your application, see the
Debugging chapter in the Screen
Developer's Guide.
- If you have a multicore hardware platform, separate the decoding of an image and the image rendering
operations into separate threads. If you run the threads on separate cores, you can decode and
render images in parallel. This technique can help to show your content before you even start the
Screen service when you use screen_attach_buffer()
to write the buffer.
For more suggestions to troubleshoot your application and techniques to trace through your code, see the
Debugging chapter in the
Screen Developer's Guide.