One of the major advances in Direct3D 10 was the removal of caps. This removal allows developers to take advantage of all the features of a wide range of video cards knowing that their application will behave and look the same everywhere. The performance of these applications can be scaled by simply disabling expensive graphics features on low end cards or rendering to smaller targets. WARP10 contributes to this ?No Caps? goal by allowing developers to have access to all Direct3D 10 graphics features, even on machines without Direct3D 10 graphics hardware.
WARP also simplifies the development by removing the need to spend time building a custom software rasterizer and tuning an application for it instead of hardware.
When an application is tuned to run efficiently on hardware, it will run efficiently on WARP as well. The converse is also true, any application that is tuned to run well on WARP10 will perform well when running on hardware.
Finally, WARP allows fast rendering in a variety of situations where hardware implementations are unavailable. For example, it works when the user does not have any Direct3D capable hardware (graphics card) or has no no video card installed at all.
The capabilities of WARP include full support for all Direct3D 10 and 10.1 feature and precision requirements, it supports Direct3D 11 when used with FeatureLevel 9_1, 9_2, 9_3, 10_0 and 10_1 as well as all optional texture formats, such as multi-sample render targets and sampling from float surfaces. WARP also supports anti-aliased rendering up to 8x MSAA, anisotropic filtering and 32 and 64 bit applications as well as large address aware 32 bit applications.
WARP10 makes extensive use of multiple CPU cores so the best performance of the rasterizer will be found on modern quad core CPU?s, according to Microsoft.
However, when WARP10 is running on the CPU we are limited compared to a graphics card in a number of ways. The front side bus speed of a CPU is typically around or under 10GB/s where as a graphics card often has dedicated memory that is able to take advantage of 20-100GB/s or more of graphics bandwidth. Graphics hardware also has fixed function units that can perform complex and expensive tasks like texture filtering, format decompression or conversions asynchronously with very little overhead or power cost. Performing these operations on a typical CPU is expensive in terms of both power consumption and performance cost in cycles. As a result, WARP10 is not a replacement for graphics hardware, but a "reasonably performing low end Direct3D 10 discrete hardware is now available for under $25," according to Microsoft.
The company claims that the typical performance numbers seen on an Intel Penryn based 3.0GHz Quad Core machine show that WARP10 can in some cases even outperform low end integrated Direct3D 10 graphics GPU?s on a number of benchmarks.
On the other hand, WARP is slower than low end discrete graphics hardware in applications where the integrated GPU?s have minimal use of CPU resources. Mid-range or high-end graphics cards are significantly faster than WARP10 for many applications particularly when an application can take advantage of the massive parallelism and memory bandwidth these graphics cards provide.