Jump to content

Windows 7 and hardware accelerated UI


DarkUltra

Recommended Posts

Hi!

Notescraps is a WPF program and uses 0% cpu when animating (changing notes) and scrolling, and looks sweet when zoomed in.

wpf_apps_are_vector_based_and_can_be_zoomed.jpg

Windows 7 however...

windows_7_zoom_no_vector_small.png

WDC, like in Vista, is of course accelerated on the GPU. But not the old GDI+. This means that Windows 7 is one step behind OSX Leopard

If you look at the three Quartz implementation diagrams in sequence, you can see how the video card portion of the diagram has slowly expanded over the course of four years to encompass more and more of the display layer. The reason is clear when you look at the bandwidth numbers: 30GB/s between the GPU and VRAM, and that number is climbing rapidly—much more rapidly than the bandwidth between the CPU and RAM.

As you can see, Quartz 2D is now running on the GPU. This is Quartz 2D Extreme. The only thing left for the CPU to do is to send (relatively tiny) drawing commands to the video card through the driver.

quartz-10.0-4_vs_vista_small.png

http://arstechnica.com/reviews/os/macosx-10-4.ars/14

Vector and hardware acceleration sure would be sweet for resource management :)

windows_7_zoom_no_vector_resource_manager_small.png

Link to comment
Share on other sites


Microsoft also has to worry about appcompat and driver issues, whereas MacOS is a closed system (their OS, closed driver model, limited hardware possibilities, and a known pool of apps written for *that* specific OS architecture). Considering WPF is a .net construct, and the OS contains it, it's logical to assume the GUI would do so, but you'd be wrong. Until all the old GDI stuff can be ripped out and the UI written in .net, you get a compromise like the UI currently in Windows.

So, is it behind OSX? If you mean is it 100% accelerated, then yes, it is. If you mean did the vendor drop support for the old UI constraints entirely, breaking a whole generation of apps (unlike Win7, which for example still runs vb6 apps from over 10 years ago....), then no.

It would be very nice, yes, but if Microsoft wants to sell copies of Win7, the compromise must exist.

Link to comment
Share on other sites

Another thing to note is the vast amount of extensions to Explorer. If Explorer suddenly went .net, all those extensions would be useless. Microsoft could make a shim that would load the old bits, but that's a app compatibility minefield nightmare. Another concern is that, until .net 4 comes out of beta, there is no way for a .net program to load more than one version of the subsystem. This only matters when you realize that, like programs that lock themselves down to certain Windows versions that are known to work, there are many .net apps that require 1.0, 1.1, or such.

It's not like it cannot be done. But it's also not something that's just going to appear without all the groundwork laid out and fully tested to hell and back. While is may seem hypocritical of Microsoft to make WPF, pimp it all over, and then not use it any of their big programs, it's more of a problem of migrating and testing than anything else. The upcoming version of Visual Studio is to have a WPF powered interface, multiple major version after the technology was released. When will we see it in Office or Windows itself? Not in Windows 7 of Office 14. Maybe the versions after.

And it's not like Apple is somehow immune to this themselves. It took three versions of OS X before GPU acceleration of the GUI became functional and default. And Apple still have many large programs running on the Carbon API, the API they have been trying to downplay for ages in preference of Cocoa.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...