Graphics and Performance in Silverlight for Windows Embedded (Compact 7)


On desktop computers, graphics performance is of less concern than on compact devices. Desktop computers typically have virtually unlimited graphics processing power and so, for these UIs, testing and tuning graphics performance is less of an issue. In contrast, Microsoft Silverlight for Windows Embedded runs on devices that can use different microprocessor types, that have custom hardware components, and that have memory size constraints.

The information and guidance given in this section will help you match your product hardware platform with your desired customer experience, and will help you to maximize the performance of the user interface (UI) for your product. Maximizing performance involves a trade-off between the complexity of your application UI and, to a certain extent, the capability and cost of your chosen hardware platform (device).

You can use the information in this section to understand the graphics processing model, hardware acceleration, hardware requirements for different levels of expected performance, and how to improve the performance of you Microsoft Silverlight for Windows Embedded application depending on your hardware and resources. Performance tuning and hardware acceleration work normally occurs late in a UI project, but some design considerations that can affect UI performance are known at initial stages of the project.

Performance in Silverlight for Windows Embedded applications is render-bound; the more pixels that must be calculated and drawn on the screen, the greater the impact on performance. Silverlight for Windows Embedded includes the following default performance features:

  • XAML files are compiled into Binary XAML (BAML) for faster load times.
  • Portable Network Graphics (PNG) files are encoded in a less-compressed format so that they can be read into memory faster.
  • When hardware acceleration is enabled, bitmap caching is on by default.

As a developer or designer, you can improve performance and accelerate the rendering process, whether by upgrading hardware, designing an efficient UI, or tailoring the graphics rendering code to better fit your hardware.

Low-cost platforms, such as ARM9 or similar, typically have inadequate processor speed and lack GPUs. Using Silverlight for Windows Embedded on such devices can result in insufficient performance.

Graphics and Rendering Process in Silverlight for Windows Embedded

Describes the phases of the rendering process in a Silverlight for Windows Embedded application, the threading model, and illustrates the process using a simple example UI.

Hardware Acceleration in Silverlight for Windows Embedded

Describes how hardware acceleration works in Silverlight for Windows Embedded, and describes the two rendering architectures that are supported: DirectDraw, and OpenGL. Links to a topic that describes how to customize the rendering plug-ins.

Test Graphics Performance of Silverlight for Windows Embedded

Describes how to obtain performance data for your Silverlight for Windows Embedded application, either manually or by using the Compact Test Kit (CTK) and other performance tools.

Optimize Hardware, BSP, or Drivers, for Graphics Performance
Optimize OS Components for Graphics Performance
Optimize UI Elements and XAML Files for Graphics Performance
Optimize Images for Graphics Performance