The Inquirer-Home

Why DX10.1 matters to you

Like speed and beauty?
Fri Nov 16 2007, 10:24

YOU KNOW THE graphics wars are heating up when the 'presentations' start to fly. The latest one is from NV talking about their upcoming 8800GT/256 which will be out soon, but it is the header that makes me think it is more than innocent advertising.

"Kevin Unangst, Senior Global Director for Microsoft Games for Windows: " DX10.1 is an incremental update that won’t affect any games or gamers in the near future." He is right, mostly because it won't be out until SP1 hits, so no argument there. More importantly, DX10 and onward is tied to the broken malware infestation known as Vista, so it is really irrelevant, but there is more to it than that.

Lets be honest, DX10.1 brings a lot of new features that don't really matter much if at all, and you can read all about them here. That said, there is one there that will matter a lot, contrary to what MS people say. This magic feature is the multi-sample buffer reads and writes(MSBRW). If you are wondering how you missed that big one in the feature list, well shame on you, read better next time.

What MSBRW does is quite simple, it gives shaders access to depth and info for all samples without having to resolve the whole pixel. Get it now? No? OK, we'll go into a bit more detail. DX10 forced you to compute a pixel for AA (or MSAA) to be functional, and this basically destroyed the underlying samples. The data was gone, and to be honest, there was no need for it to be kept around.

Games like Quake3 would do a lighting pass, then a shader pass, and another lighting followed by shaders and so on until everything was rendered right. This was quite precise but also quite slow. Dog slow.

To optimize around this, a technique called deferred shading took was invented. This does all the lighting passes followed by a single shader pass. If you have five passes, you basically can skip four trips through the shaders. The problem? Because the pixel isn't fully computed, just a pile of AA data, there is no way for it to be read. This is horribly simplified, but I don't want to go into the low level stuff here, go look it up if you really care.

What this meant is that you can't turn on AA if you have deferred rendering unless you do Supersampling which is rendering it at higher reolutions and sampling down. This is unusably slow, so it went out the door, meaning if you were designing a game, you picked speed in the form of deferred shading, or beauty in the form of AA. Most DX10 games will go for speed, meaning the AA hardware will sit more or less idle.

DX10.1 brings the ability to read those sub-samples to the party via MSBRW. To the end user, this means that once DX10.1 hits, you can click the AA button on your shiny new game and have it actually do something. This is hugely important.

The first reaction most people have is that if a game is written for DX10, then new 10.1 features won't do anything, AA awareness needs to be coded in the engine. That would be correct, but we are told it is quite patchable, IE you will probably see upgrades like the famous 'Chuck patch' for Oblivion. Nothing is guaranteed, but there is a very good chance that most engines will have an upgrade available.

In the end, DX10.1 is mostly fluff with an 800-pound gorilla hiding among the short cropped grass. MSBRW will enable AA and deferred shading, so you can have speed and beauty at the same time, not a bad trade-off.

Since NV has not done the usual 'we can do it too' song and dance when they are being beaten about the head and neck by a bullet point feature they don't have, you can be pretty sure they can't do it.

Close looks at the drivers, and more tellingly no PR trumpeting that they will have it out before the release of SP1 almost assuredly means that it will never happen. If you have a G8x or a G9x card, the only feature of DX10.1 you will miss is the important one. µ


Share this:

blog comments powered by Disqus
Subscribe to INQ newsletters

Sign up for INQbot – a weekly roundup of the best from the INQ

INQ Poll

Heartbleed bug discovered in OpenSSL

Have you reacted to Heartbleed?