Windows 7 lets CPU accelerate DirectX 10 graphics

Posted on Saturday, November 29 2008 @ 0:16 CET by Thomas De Maesschalck
A new document on MSDN reveals Windows 7's WARP10 system will be able to run Direct3D 10 and 10.1 graphics on the processor. WARP10 stands for Windows Advanced Rasterization Platform - it's a new multi-core optimized software rasterizer that will be part of DirectX 11 in Windows 7.

This software rasterizer runs on systems with a 800MHz processor, MMX, SSE or SSE2 isn't required but you'll need at least 512MB RAM. It will support all the precision requirements of the Direct3D 10 and 10.1 specification and DirectX 11 graphics can be emulated via fallbacks to DirectX 9 or DirectX 10. Optional texture formats, anti-aliasing up to 8x MSAA, anisotropic filtering and 32/64-bit applications are also supported.

This won't be a threat to AMD and NVIDIA because the CPU accelerated graphics are very slow, but it does mean Windows 7 systems will be able to render DirectX 10 graphics when for some reason DirectX 10 hardware isn't available. Microsoft says the technology is also targeted at casual games that don't require a lot of graphics performance, and points out it could be useful for emulators or virtual environments that are attempting to display advanced 3D graphics.
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.

By providing WARP, development is simplified by removing the need to spend time building a custom software rasterizer and tuning your application for it instead of hardware. By providing a single, conformant general purpose software rasterizer, there is no longer a need to write image rendering algorithms in multiple ways simply to run on hardware or software with different features and capabilities. Developers can still choose to implement algorithms in multiple ways if it would help achieve better performance or scaling, however they do not need to change the API or rendering architecture used to implement those algorithms. Instead, a developer can focus on creating a great Direct3D 10 application and know that it will look the same and perform well on hardware or in software.

Image processing algorithms, printing, remoting, Virtual PC’s and other emulators, high quality font rendering, charts, graphs etc… these algorithms and applications have typically been optimized for the CPU because they don’t want to or can’t take a dependency on hardware. With WARP10, it’s possible to have a single architecture that accomplishes these tasks that can run fully in software, yet also have the ability to take advantage of hardware acceleration if it’s available.
You can find some performance figures over at MSDN. Microsoft ran Crysis in DirectX 10 at 800 x 600 pixels with low quality settings to prove that processors with WARP10 are capable of achieving framerates that best low-end integrated graphics such as Intel's DX10 IGP. A quad-core Penryn at 3GHz has an average FPS of 5.69FPS in Crysis, which is slightly better than the 5.17FPS offered by Intel DX10 integrated graphics. A Core i7 processor with eight cores (eight "virtual" cores through Hyper-Threading) at 3GHz should result in an average of 7.36FPS, but obviously that's still no match for the average 33.89FPS offered by a cheap card like the NVIDIA GeForce 8400 GS.
The typical performance numbers we are seeing 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!

Low end discrete graphics hardware is typically 4-5x faster than WARP10 at running these benchmarks and obviously, these GPU’s have minimal use of CPU resources as well. 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.

We don’t see WARP10 as a replacement for graphics hardware, particularly as reasonably performing low end Direct3D 10 discrete hardware is now available for under $25. The goal of WARP10 was to allow applications to target Direct3D 10 level hardware without having significantly different code paths or testing requirements when running on hardware or when running in software.


About the Author

Thomas De Maesschalck

Thomas has been messing with computer since early childhood and firmly believes the Internet is the best thing since sliced bread. Enjoys playing with new tech, is fascinated by science, and passionate about financial markets. When not behind a computer, he can be found with running shoes on or lifting heavy weights in the weight room.



Loading Comments