The features of the graphics hardware determine the rendering capability of a WPF application. The WPF system defines three rendering tiers:
Rendering Tier 0 No graphics hardware acceleration. The DirectX version level is less than version 7.0.
Rendering Tier 1 Partial graphics hardware acceleration. The DirectX version level is greater than or equal to version 7.0, and lesser than version 9.0.
Rendering Tier 2 Most graphics features use graphics hardware acceleration. The DirectX version level is greater than or equal to version 9.0.
The Tier property allows you to retrieve the rendering tier at application run time, which allows developers to determine whether the device can support certain hardware-accelerated graphics features. Your application can then take different code paths at run time depending on the rendering tier supported by the device.
Rendering Tier 0
A rendering tier value of 0 means that there is no graphics hardware acceleration available for the application on the device. At this tier level, developers should assume that all graphics will be rendered by software with no hardware acceleration. This tier's functionality corresponds to a DirectX version that is less than 7.0.
Rendering Tier 1
A rendering tier value of 1 means that there is partial graphics hardware acceleration available on the video card. This corresponds to a DirectX version that is greater than or equal to 7.0 and less than 9.0.
The following features and capabilities are hardware accelerated for rendering tier 1:
Feature | Notes |
|---|
2D rendering | Most 2D rendering is supported. |
3D rasterization | Most 3D rasterization is supported. However, WPF will use software to calculate vertex light intensities, which are then passed to the hardware as a vertex color. This means that lighting is much slower on tier 1. |
3D anisotrophic filtering | When the rendering tier >= 1, WPF attempts to use anisotrophic filtering when rendering 3D content. Anisotropic filtering refers to enhancing the image quality of textures on surfaces that are far away and steeply angled with respect to the camera. |
3D mip mapping | When the rendering tier >= 1, WPF attempts to use mip mapping when rendering 3D content. Mip mapping improves the quality of texture rendering when a texture occupies a smaller field of view in a Viewport3D. |
The following features and capabilities are not hardware accelerated for rendering tier 1:
Feature | Notes |
|---|
Bitmap effects | Using a bitmap effect on a visual forces the visual to be rendered without hardware acceleration. |
Printed content | All printed content is rendered using the WPF software pipeline. |
Rasterized content using a RenderTargetBitmap object | All content rendered using the Render method of RenderTargetBitmap. |
Tiled content that uses TileBrush | Any tiled content in which the TileMode property of the TileBrush is set to Tile. |
Surfaces that exceed the maximum texture size of the graphics hardware | Most video cards do not support surfaces larger than 2048x2048 or 4096x4096 pixels in size. |
Any operation whose video RAM requirement exceeds the memory of the graphics hardware | You can monitor application video RAM usage by using the WPF Performance Suite tool that is included with the Windows SDK. |
Layered windows | Layered windows allow WPF applications to render content to the screen in a non-rectangular window. On Windows Vista, layered windows are hardware accelerated. On other systems, such as Windows XP, layered windows are rendered by software with no hardware acceleration. You can enable layered windows in WPF by setting the following Window properties: |
Radial gradients | Any use of RadialGradientBrush. |
3D lighting calculations | WPF performs per-vertex lighting, which means a light intensity must be calculated at each vertex for each material applied to a mesh. In tier 1, the calculations are performed by software. In tier 2, the calculations are performed in hardware. |
Text rendering | Sub-pixel font rendering uses available pixel shaders on the graphics hardware. |
3D anti-aliasing | Any use of 3D anti-aliasing. |
The following graphics hardware features define rendering tier 1:
Feature | Notes |
|---|
DirectX version | Must be greater than or equal to 7.0 and less than 9.0. |
Video RAM | Must be greater than or equal to 30MB. |
Multitexture units | Number of units must greater than or equal to 2. |
The following table lists common graphics cards that support rendering tier 1:
Manufacturer | Model |
|---|
ATI | Radeon models: 256, 7000, 7500, 8500, 9000, 9100, 9200, and 9250 |
Intel | Intel Extreme Graphics models: 845G, 845GE, 845GL, and 845GV Intel Extreme Graphics II models: 852GME, 855GM, 855GME, 865G, and 865GV |
NVidia | GeForce 256 GeForce2 models: GTS, MX, MX100, MX200, MX400, Pro, Ti, and Ultra GeForce3 models: Ti200 and Ti500 GeForce4 models: MX420, MX440, MX460, MX4000, Ti4200, Ti4400, Ti4600, and Ti4800 |
Rendering Tier 2
A rendering tier value of 2 means that most of the graphics features of WPF should use hardware acceleration provided the necessary system resources have not been exhausted. This corresponds to DirectX version that is greater than or equal to 9.0.
The following features and capabilities are hardware accelerated for rendering tier 2:
Feature | Notes |
|---|
Tier 1 features | Includes all tier 1 features. |
Radial gradients | While supported, avoid the use of RadialGradientBrush on large objects. |
3D lighting calculations | WPF performs per-vertex lighting, which means a light intensity must be calculated at each vertex for each material applied to a mesh. In tier 1, the calculations are performed by software. In tier 2, the calculations are performed in hardware. |
Text rendering | Sub-pixel font rendering uses available pixel shaders on the graphics hardware. |
3D anti-aliasing | 3D anti-aliasing is only supported on Windows Vista. |
The following features and capabilities are not hardware accelerated for rendering tier 2:
Feature | Notes |
|---|
Bitmap effects | Using a bitmap effect on a visual forces the visual to be rendered without hardware acceleration. |
Printed content | All printed content is rendered using the WPF software pipeline. |
Rasterized content that uses RenderTargetBitmap | Any content rendered using the Render method of RenderTargetBitmap. |
Tiled content that uses TileBrush | Any tiled content in which the TileMode property of the TileBrush is set to Tile. |
Surfaces that exceed the maximum texture size of the graphics hardware | For most graphics hardware, large surfaces are 2048x2048 or 4096x4096 pixels in size. |
Any operation whose video RAM requirement exceeds the memory of the graphics hardware | You can monitor application video RAM usage by using the WPF Performance Suite tool that is included with the Windows SDK. |
Layered windows | Layered windows allow WPF applications to render content to the screen in a non-rectangular window. On Windows Vista, layered windows are hardware accelerated. On other systems, such as Windows XP, layered windows are rendered by software with no hardware acceleration. You can enable layered windows in WPF by setting the following Window properties: |
The following graphics hardware features define rendering tier 2:
Feature | Notes |
|---|
DirectX version | Must be greater than or equal to 9.0. |
Video RAM | Must be greater than or equal to 120MB. |
Pixel shader | Version level must greater than or equal to 2.0. |
Vertex shader | Version level must greater than or equal to 2.0. |
Multitexture units | Number of units must greater than or equal to 4. |
The following table lists common graphics cards that support rendering tier 2:
Manufacturer | Model |
|---|
ATI | Radeon models: 9550, 9600, 9800, and X-series |
Intel | Intel GMA900 models: 915G Intel GMA950 models: 945G |
NVidia | Geforce FX-series, 6xxx-series, and 7xxx-series |