There are a lot of article on internet but still not clear, so i need a clear explanation of How Hardware acceleration work with WPF ?
The GPU, or Graphics Processing Unit, is the chip that powers your video card. Essentially, hardware acceleration offloads the work of rendering graphics in your WPF application from your computer's main processor (CPU) to the video card's processor (GPU).
Hardware acceleration refers to the process by which an application will offload certain computing tasks onto specialized hardware components within the system, enabling greater efficiency than is possible in software running on a general-purpose CPU alone.
Turning on hardware acceleration improves your battery life, performance, and responsiveness. Hardware acceleration offloads certain tasks from the CPU to the GPU or any other specialized hardware that can do it more efficiently, resulting in faster processing times and longer-lasting batteries.
Does that mean WPF has replaced DirectX? No, WPF does not replace DirectX. DirectX will still be still needed to make cutting edge games. The video performance of DirectX is still many times higher than the WPF API.
Your question doesn't give any specifics on what you're confused about in reading the articles on the Internet, or what exactly you want to know about hardware acceleration in WPF. So, I'll try and give you a general, though simplified, summary of how it works.
In order to obtain GPU-accelerated rendering, Windows Presentation Foundation (WPF) renders and presents graphics through the DirectX pipeline. The GPU, or Graphics Processing Unit, is the chip that powers your video card. Essentially, hardware acceleration offloads the work of rendering graphics in your WPF application from your computer's main processor (CPU) to the video card's processor (GPU). By using hardware on your video card that is specifically designed for rendering graphics instead of software functions run by the CPU, the performance of your application's graphics and user interface is increased, or accelerated. The ultimate goal is that complex graphics routines become render-bound (that is, limited by the capabilities of the GPU), rather than processor-bound (that is, limited by the capabilities and speed of your computer's CPU). This frees up the CPU to do other work, makes the best use of your video card's unique graphics capabilities, and speeds up the performance of your app each time the user upgrades to a newer, faster, and more advanced video card (as they become available).
This, of course, assumes that your video card supports hardware acceleration. In fact, not all of them do, and WPF accommodates this with a three-tiered approach:
If your video card does not provide any level of hardware acceleration, such as if you're running a version of DirectX less than 7.0, WPF falls back to Tier 0 rendering mode, or software acceleration.
If your video card supports partial hardware acceleration, such as if you're running a version of DirectX between 7.0 and 9.0, then WPF uses Tier 1 rendering mode.
If your video card supports full hardware acceleration for all graphics output, corresponding to a version of DirectX equal or greater than 9.0, then WPF uses Tier 2 rendering mode.
This MSDN page provides more information about these graphics rendering tiers and exactly what features and capabilities support hardware acceleration.
And I don't know if you've already seen this blog post, but with a better understanding of what I've just explained, it may make more sense to you when reading it again now.
Remember, however, that part of the deal with WPF is that you don't have to worry about the details and idiosyncrasies of this process. The technology is intelligent enough to use hardware optimizations wherever possible, while falling back to software-based rendering when necessary. Your WPF applications will work even on older computers with legacy video cards, albeit slower than on a newer client. So this is probably something you don't need to worry about beyond casual curiosity.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With