Search by Tags

Graphic Performance (Colibri)

 

Article updated at 19 Feb 2018
Compare with Revision


There are different factors which affect the video performance.

Here some tips:

Use the latest Win CE Image

We improve our display driver with every update so make sure you use the latest one.

Use Device Dependent Bitmaps (DDBs)

Win CE knows 2 different types of bitmaps, device-dependent bitmaps (DDBs) and device-independent bitmaps (DIBs).

DIBs can be created with almost any color format and the owner application has a direct memory pointer to them. In windows CE DIBs are always allocated in System memory and therefore cannot be used in the GCU (Hardware graphic accelerator).

DDBs can only be created with the same format as the Framebuffer and are allocated in Video Memory (if there is still available space). For DDB allocated in Video memory the GCU (Hardware graphic accelerator) can be used to speed up operations.

NOTE: In Windows CE 6 there is an additional performance drawback when using DIBs until image version 3.7 beta 2.

Use Color formats which can be copied fast to the Framebuffer

The best case is if the system doesn't need to do any conversion and can directly copy the data to the Framebuffer. This is the case if you use DDBs, which you can create with the function CreateCompatibleBitmap().

If this is not possible check Bitblt for optimized color formats.

Reduce colors

In case you don't really need 18bit colors but you need very fast graphics, we recommend to use the 16BPP with 16LDD (The display is connected with 16bit of colors). In a lot of cases this gives you a performance boost and you lose just 2bits of color information.

In case you like to test the 16bit mode with the Colibri Evaluation Board and an analog monitor have a look here.

Make sure the VideoRAM is enough big

In case the VideoRAM is too small, the system uses normal RAM which cannot be used by the graphic acceleration HW

Check if you can place the Framebuffer in the SRAM

If you use a small resolution or few colors you can place the Framebuffer in the SRAM.

Check the behaviour of the display driver

You can set the registry key "Verbosity" in the Display Driver Registry Settings to get more information on what the display driver is doing.