DirectX 10

Visual changes aside, there are numerous changes under the hood of Vista, and for much of our audience, DirectX 10 will be the biggest of such changes. DirectX 10 has enjoyed an odd place recently in what amounts to computer mythology, as it has been in development for several years now while Microsoft has extended DirectX 9 to accommodate new technologies. Previously, Microsoft was doing pretty good at providing yearly updates to DirectX.

Unlike the previous iterations of DirectX, 10 will be launched in a different manner due to all the changes to the operating system needed to support it. Of greatest importance, DirectX 10 will be a Vista-only feature; Microsoft will not be backporting it to XP. DirectX 10 will not only include support for new hardware features, but relies on some significant changes Microsoft is making to how Windows treats GPUs and interfaces with them, requiring the clean break. This may pose a problem for users that want to upgrade their hardware without upgrading their OS. It is likely that driver support will allow for DX9 compatibility, while new feature support could easily be added through OpenGL caps, but the exact steps ATI and NVIDIA will take to keep everyone happy will have to unfold over time.

There seems to be some misunderstanding in the community that DX9 hardware will not run with DirectX 10 installed or with games designed using DirectX 10. It has been a while, but this transition (under Vista) will be no different to the end user than the transition to DirectX 8 and 9, where users with older DirectX 7 hardware could still install and play most DX 8/9 games, only without the pixel or vertex shaders. New games which use DirectX 10 under Vista while running on older DX9 hardware will be able to gracefully fall back to the proper level of support. We've only recently begun to see games come out that refuse to run on DX8 level hardware, and it isn't likely we will see DX10-only games for several more years. Upgrading to Vista and DX10 won't absolutely require a hardware upgrade. The benefit comes in the advanced features made possible.

While we'll have more on the new hardware features supported by DirectX 10 later this year, we can talk a bit about what we know now. DirectX 10 will be bringing support for a new type of shader, the geometry shader, which allows for the modification of triangles in the middle of rendering at certain stages. Microsoft will also be implementing some technology from the Xbox 360, enabling the practical use of unified shaders like we've seen on ATI's Xenos GPU for the 360. Although DirectX 10 compliance does not require unified hardware shaders, the driver interface will be unified. This should make things easier for software developers, while at the same time allowing hardware designers to approach things in the manner they see best. Pixel and vertex shading will also be receiving some upgrades under the Shader Model 4.0 banner.

Click to enlarge


DirectX 10 will also be implementing some significant optimizations to the API itself, as the continuous building of DirectX versions upon themselves along with CPU-intensive pre-rendering techniques such as z-culling and hidden surface removal has resulted in a fairly large overhead being put on the CPU. Using their developer tools, ATI has estimated that the total CPU utilization spent working directly on graphics rendering (including overhead) can approach 40% in some situations, which has resulted in some games being CPU limited solely due to this overhead. With these API changes, DX10 should remove a good deal of the overhead, and while it still means that there will be a significant amount of CPU time required for rendering (20% in ATI's case), the 20% savings can be used to ultimately render more or more complex frames. Unfortunately, these API changes will work in tandem with hardware changes to support them, so these benefits will only be available to DirectX 10 class hardware.

The bigger story at the moment with DirectX 10, however, is how it also forms the basis of Microsoft's changes to how Windows will treat and interface with GPUs. With current GPU designs and the associated treatment from the operating system, GPUs are treated as single-access devices; one application is effectively given sovereign access and control of the GPU's 3D capabilities at any given moment. To change which application is utilizing these resources, a very expensive context switch must take place that involves swapping out the resources of the first application for that of the second. This can be clearly seen today when Alt+Tabbing out of a resource intensive game, where it may take several seconds to go in and out of it, and is also part of the reason that some games simply don't allow you to Alt+Tab. Windowed rendering in turn solves some of this problem, but it incurs a very heavy performance hit in some situations, and is otherwise a less than ideal solution.

With the use of full 3D acceleration on the desktop now with Aero, the penalties become even more severe for these context switches, which has driven Microsoft to redesign DirectX and how it interfaces with the GPU. The result of this is a new group of interface standards, which Microsoft is calling the Windows Display Driver Model, which will replace the older XP Display Driver Model used under XP.

The primary change with the first iteration of the WDDM, which is what will be shipping with the release version of Vista, is that Microsoft is starting a multi-year plan to influence hardware design so that Windows can stop treating the GPU as a single-tasking device, and in the inevitable evolution of GPUs towards CPUs, the GPU will become a true multi-tasking device. WDDM 1.0 as a result is largely a clean break from the XP DDM; it is based on what current SM2.0+ GPUs can do, with the majority of the change being what the operating system can do to attempt multitasking and task scheduling with modern hardware. For the most part, the changes brought in WDDM 1.0 will go unnoticed by users, but it will be laying the groundwork for WDDM 2.0.

While Microsoft hasn't completely finalized WDDM 2.0 yet, what we do know at this point is that it will require a new generation of hardware, again likely the forthcoming DirectX 10 class hardware, that will be built from the ground up to multitask and handle true task scheduling. The most immediate benefit from this will be that context switches will be much cheaper, so applications utilizing APIs that work with WDDM2.0 will be able to switch in/out in much less time. The secondary benefit of this will be that when there are multiple applications running that want to use the full 3D features of the GPU, such as Aero and an application like Google Earth, that their performance will be improved due to the faster context switches; at the moment context switches mean that even in a perfectly split load neither application is getting nearly 50% of the GPU time (and thus fall short of their potential performance in a multitasking environment). Even further in the future will be WDDM 2.1, which will be implementing "immediate" context switching. A final benefit is that the operating system should now be able to make much better use of graphics memory, so it is conceivable that even lower-end GPUs with large amounts of memory will have a place in the world.

In the mean time, Microsoft's development of WDDM comes at a cost: NVIDIA and ATI are currently busy building and optimizing their drivers for WDDM 1.0. The result of this is that along with Vista already being a beta operating system, their beta display drivers are in a very early state, resulting in what we will see is very poor gaming performance at the moment.

The First Look, Continued User Account Control and Security
POST A COMMENT

75 Comments

View All Comments

  • aeschbi99 - Wednesday, July 05, 2006 - link

    Hi

    I just loved your article about Vista....especially the comparison to TIGER...I am a big MAC fan! But what MS did with Flip3D it appears to me is a copy of SUN's "Looking Glass" - which was out I believe even in 2003.

    Redmond --- start your copy machine.... the real invention starts somewhere else....

    see link http://java.sun.com/developer/technicalArticles/J2...">http://java.sun.com/developer/technical...s/J2SE/D...
    Reply
  • absynthe49 - Saturday, July 01, 2006 - link

    I really enjoy anandtech but I didn't really like the style of this article. When I read it.. I was quite sad that vista was looking so bad at this stage... particularly the game performance.

    But then I remembered that I read in a few places that Vista would not support native DirectX 9. That it would be in a way.. emulated. So there was an expected decrease in numbers. My understanding was that new powerful hardware would be coming out and that it would run the older games fast enough to overcome the loss from emulation.

    The article almost seemed to say that gaming looks doomed in a way.

    So basically... the drivers are not tweaked yet... this is still a beta... there may still be a debugging layer running... and I think vista runs directx 9 through an emulation layer.

    So unless this is false and it actually runs directx 9 natively... is it really a surprize at all that directx 9 games run from 20 to 30 frames per second slower? This did not seem to be addressed at all in the article and I thought it was kind of premature worry so much.
    Reply
  • NullSubroutine - Monday, June 19, 2006 - link

    they can say every hardware/software limitation they want. i dont buy that they 'cant' make dx10 for xp and they 'cant' have full opengl support. just too convienent for microsoft. Reply
  • mongo lloyd - Sunday, June 18, 2006 - link

    Although Microsoft may not consider itself to be in direct competition with Apple, this is the match-up most people have been waiting for. Only people who give a shit about OSX, which is far from "most people". Reply
  • drewintheav - Sunday, June 18, 2006 - link

    I thought the staged install method was supposed to be so fast?
    It took way longer to install than it does for me to install XP.
    The Vista Media Center is not useable at this point...
    The video stutters, the audio drops out, and it crashes all the time.
    I had always heard Mac fanatics saying how much better OSX was than XP
    I didn't really believe it could be "so much" better
    I tried out OSX after I installed Vista.
    And now it is very obvious to me where Microsoft has gotten most of its new UI ideas.
    At this point I would say that Microsoft's has executed them very poorly
    which is a little disappointing.
    It is disappointing to me that even if everything worked perfectly in Vista
    it would still lag behind OSX on a number of points
    In fact if Apple sold OSX for Intel as a retail product
    and added a Media Center application
    I would switch to MAC and just run windows Windows apps with an emulator or a VM
    and dual boot XP for games.
    Microsoft really has a lot of work to do and I hope they get it together...

    OSX is way more innovative than Vista at this point...
    Reply
  • AndrewChang - Wednesday, June 21, 2006 - link

    Well, after months of deliberation, it looks like my next personal computing platform will be a merom/leopard based mac book pro. I don't expect to be using a vista based pc until at least the first or second service pack. A fully intergrated bookcamp/virtualization in this next OSX release should take care of my legacy applications (games on xp). Thanks Anandtech, w/o your Macintosh articles I would have never considered all the wonderful options available to me. It'll be fun learing how to use a new OS, especially one that is already superior what us PC users have to look forward to. Reply
  • Pirks - Monday, June 19, 2006 - link

    quote:

    In fact if Apple sold OSX for Intel as a retail product

    There's no point - since Dell with the same configuration as iMac and with the same set of basic apps (like DVD burning/mastering etc) costs the same as iMac - why would you buy Dell in the first place? To me it seems that if you spend $1500 on a Dell plus retail Mac OS X instead of iMac - you'll get lower quality product.
    Hence no retail Mac OS X - nobody is interested because iMacs are priced on par with comparable Dells.
    quote:

    and added a Media Center application

    There is Front Row - check out decent Mac sites, read reviews - you'll be surprised how much you missed, hehe ;-)
    Reply
  • nullpointerus - Monday, June 19, 2006 - link

    Not everyone who wants to run Mac OS X wants to purchase a prebuilt computer for it. You should know that if you're posting here because this site is mostly made up of enthusiasts.

    Mac OS X w/ Front Row isn't comparable to Windows MCE. Show me the integrated program guide and automatic recording capabilities. You may as well compare Paint to Gimp or Photoshop.
    Reply
  • Pirks - Monday, June 19, 2006 - link

    quote:

    Not everyone who wants to run Mac OS X wants to purchase a prebuilt computer for it. You should know that if you're posting here because this site is mostly made up of enthusiasts.
    Same can be said about the post of the guy above asking for the OS X retail version. If I should know this site is for enthusiasts - THEN HE SHOULD KNOW what OS X is and why it is so successful and generates lots of buzz in IT press - pecisely because it DOES NOT have a retail version. Hence asking OS X to give up it's number one advantage - smooth integration with hardware because hardware is NOT open - is not much smarter than my post above.
    quote:

    Mac OS X w/ Front Row isn't comparable to Windows MCE
    Depends on what the user wants. I suppose some users are happy with limited functionality of Paint and don't need/don't want Photoshop.
    Reply
  • nullpointerus - Saturday, June 17, 2006 - link

    "We also tested the boot times for a clean install of each operating system, using a stopwatch to see how long it took for the OS to boot to the point where it presented a usable login screen."

    Um...you must have something seriously wrong with your system. I'm using a lowly Athlon64 3000+ Winchester and 2GB PC3200 RAM. I did a clean install of the x64 version and timed it with my digital watch; it took ~50 seconds to get to the desktop, not the login screen. I had to switch to the 32-bit version because of driver support, and I can tell you it doesn't take 48 seconds to get to the login screen.

    Now, if you rummage around in the control panel's performance applet, you can look at services and drivers which are slowing the boot process down; USB audio and nVidia's drivers affected my system, and even so it starts nearly 30 seconds faster than your clean x64 system. Maybe there's something on your PC that's causing problems?

    Also, something on my second boot will chew up large amounts of CPU time, making the login screen unresponsive. On subsequent boots this problem disappeared, and I was able to enter my password immediately and login fairly quickly. I have drivers for my Linksys WMP54GX and Creative Audigy installed now, too, so my PC should be worse than your clean system.

    Maybe you could check these things out and retest?
    Reply

Log in

Don't have an account? Sign up now