Microsoft Reinvents Desktop Graphics in Windows Longhorn
The new architecture was given a sneak peek at Microsofts Meltdown conference, which is all about building games on Windows. Originally started as a compatibility test-fest for hardware makers and software developers, the event has matured into a Windows game developer convention. Highlights from this years gathering, held July 27th and 28th in Seattle, included presentations about the companys XNA development tools and how to get the most out of Direct3D and DirectSound.
One of the more exciting parts of the conference was a talk entitled "DX Futures," where the Redmond software giant went over some of the architectural details of Longhorns graphics architecture, which have some big in changes in store for Direct3D.
During the event, David Blythe of the DirectX development team gave a very interesting talk about the upcoming 3D graphics architecture in Longhorn, the next major revision of Windows. Called WGF (Windows Graphics Foundation), this new architecture will usher in some major changes to how 3D graphics operations get handled by Longhorn.
These WGF changes extend well beyond Longhorns Avalon technology, which will render the Windows Desktop using a GPUs 3D graphics processing power rather than the traditional 2D blitter. The foundation will instead define the core 3D operations themselves.
For starters, it appears that, as some rumors have suggested, the distinction between vertex and pixel shaders will essentially go away. Instead, there will be what Microsoft is calling a Common Shader Core that will contain vertex and pixel shader operations.
Blythe hinted that other kinds of shaders may become available in this framework, though he declined to elaborate as to what those might be. Some possible features that could be added here would be collision detection, and more interestingly, physics calculations. Theres been a fair amount of published work coming out of academia about using GPUs floating-point horsepower to model fluid dynamics, and the movement of gaseous clouds (like smoke).
The line between vertex and pixel shader ops and instructions has been blurring for some time already. There was even some speculation that ATI pushed the R400 out to be the R500 because this architecture was going to try to unify its vertex and pixel shader units. It would appear WGF will lay the groundwork for that unification.
Other major changes call for the GPU to be available to multiple applications simultaneously. Blythe articulated what he termed a "crawl/walk/run" strategy, where an initial feature set would be introduced in WGF 1.0, when Longhorn ships. Other features would be folded in as they became stable and ready for release.
For instance, WGFs scheduler will be tasked with keeping multiple 3D applications fed and happy. This scheduler will likely have a three-step rollout:
- Schedule batches
- Schedule contexts
- Preemptive context scheduling
Given Avalons 3D-centric architecture, this feature will be crucial to keeping Longhorn running smoothly in multitasking environments, where each application requires ready access to its displayed data.
We have some concern that the word "preemptive" doesnt appear until the third stage of this rollout. Windows has had a preemptive multitasking model since Windows 95, and that model has worked fairly well.
However, if an applications display processing chores cant preemptively be given higher priority when that app comes into the foreground focus, we wonder if there might be some perceptible latency as other instructions are retired and the in-focus apps processing gets the drivers full attention. The answer to that question will likely have to wait until the Longhorn beta sometime next year.
One of the first orders of business in is to "fix busted stuff," as Blythe put it. These items include no more blue-screens (hard crashes) caused by the graphics driver, and moving more processing into whats known as user mode. This initiative dovetails with the Longhorn Display Driver Model (LDDM), outlined at this years WinHEC conference.