What's new in DX 9.0c


This year the latest in the DirectX API is getting a bit of a face lift. The new feature in DirectX 9.0c is the inclusion of Pixel Shader and Vertex Shader 3.0. Rather than calling this DirectX 9.1, Microsoft opted to go for a more "incremental" looking update. This can end up being a little misleading because whereas the 'a' and 'b' revisions mostly extended and tweaked functionality, the 'c' revision adds abilities that are absent from its predecessors.

Pixel Shader 3.0 (PS3.0) allows shader programs of over 65,000 lines and includes dynamic flow control (branching). This revision also requires that compliant hardware offer 4 Multiple Render Targets (MRT's allow shaders to draw to more than one location in memory at a time), full 32-bit floating point precision, shader antialiasing, and a total of ten texture coordinate inputs per pixel.

The main advantage here is the ability for developers to write longer, more complex, shader programs that run more efficiently. The flow control will give developers the freedom to write more intuitive code without sacrificing efficiency. Branching allows a shader program the expanded ability to make decisions based on its current state and inputs. Rather than having to run multiple shaders that do different things on different groups of pixels, developers can have a single shader handle an entire object and take care of all its shading needs. Our example of choice will be shading a tree: one shader can handle rendering the dynamics of each leaf, smooth new branches near the top, rugged old bark on the trunk, and dirty roots protruding from the soil.

Vertex Shader 3.0 extends its flow control ability by adding if/then/else statements and including the ability to call subroutines in shader programs. The instruction limit on VS3.0 is also extended to over 65000. Vertex textures are also supported, allowing more dynamic manipulation of vertices. This will get even more exciting when we make our way into the next DirectX revision which will allow for dynamic creation of vertices (think very cool particle systems and hardware morphing of geometry).

One of the coolest things that VS3.0 offers is something called instancing. This functionality can remove a lot of the overhead created by including multiple objects based on the same 3d model (these objects are called instances). Currently, the geometry for every model in the scene needs to be setup and sent to the GPU for rendering, but in the future developers can create as many instances of one model as they want from one vertex stream. These instances can be translated and manipulated by the vertex shader in order to add "individuality" to each instance of the model. To continue with our previous example, a developer can create a whole forest of trees from the vertex stream of one model. This takes pressure off of the CPU and the bus (less data is processed and sent to the GPU).

Now that we've seen what developers are looking at with DirectX 9.0c, let's take a look at how NVIDIA plans to bring these features to the world.
Index NV40 Under the Microscope
Comments Locked

77 Comments

View All Comments

  • Marsumane - Wednesday, April 14, 2004 - link

    This card owns... Anyone know when it ships to retail stores? Guesses even?
  • SpaceRanger - Wednesday, April 14, 2004 - link

    I'd like to see what ATI comes up with before I make my decision. I rushed to judgement back when the GF4 TI4600 came out, and regretted making the quick call to buy. If I don't have to get a new PSU for the ATI solution, I'll consider it, even if performance is 5-10FPS slower. Adding 100 bucks to the already costly 500 for the card doesn't justify the expenditure.
  • gordon151 - Wednesday, April 14, 2004 - link

    AtaStrumf is so right. More than likely you'll be able to buy the X800s before you can buy this.
  • Shinei - Wednesday, April 14, 2004 - link

    Well, I'm sold. Yeah, that sounds fanboyish, but this thing is a solid performer and doesn't require me to completely replace my display drivers... Even if ATI wins by five FPS and has a lens flare in a forgotten corner of a screenshot that you have to stare at for ten minutes to spot, my money is going to NV40--assuming the prices come down a little. ;)
    Speaking of DX9/PS2.0, what about a Max Payne 2 benchmark? I'm curious what NV40 can do on that game with maxed out everything... :)
  • skiboysteve - Wednesday, April 14, 2004 - link

    i love anandtech's deep technical reviews but yall did no where near enough testing, the xbit article does a hell of allot more testing, 48 pages!

    http://www.xbitlabs.com/articles/video/display/nv4...

    the card fucking rapes everything.

    the anand tests dont show nearly the rape the xbit ones do...
  • AtaStrumf - Wednesday, April 14, 2004 - link

    I find it really funny when people say that they will wait until ATi releases their X800 to make up their buying decisions.

    It's not you can run out and BUY this card right now or tomorrow. Of yourse you will wait. You don't really have a choice :)
  • ChronoReverse - Wednesday, April 14, 2004 - link

    The Techreport tested out the total power draw of this thing and it only drew slightly higher than the 5950 (both of which draws more than the 9800XT).


    So it seems the recommendation isn't actually necessary (and my Enermax enhanced 12V lines will take it easily).
  • Pete - Wednesday, April 14, 2004 - link

    mkruer #27, all the reviews I've read mention $500 for the 6800U, and $299 for a 12-pipe 128MB 6800.
  • DerekWilson - Wednesday, April 14, 2004 - link

    #27,

    The 6800 Ultra (which we tested) will be priced at $500

    The 6800 (with 12 pipes rather than 16) will be priced at $300
  • Pete - Wednesday, April 14, 2004 - link

    quikah #26: FarCry comparison screens are at HOCP.

    http://hardocp.com/article.html?art=NjA2LDU=

    Apparently PS3 wasn't enabled, but the 6800U looks better than the 5950U running PS2. It's still uglier than the 9800XT, sadly. Banding abounds, both here and in FiringSquad's Lock-On screens. Puzzling, really. If the 6800U really runs FP32 as fast as FP16 within memory limits, I wonder if all it will take to get IQ on a level with ATi is forcing the 6800U to run the ATi path or removing the NV3x path's _pp hints.

Log in

Don't have an account? Sign up now