Skip to main content
GameDev.net gamedev.net
🔒 Locked

The future of DirectX 10

Started by hughiecoles Jun 16, 2009 at 2:26 AM 11 replies 5k views
Original Post
hughiecoles
hughiecoles
with Windows 7 and DirectX 11 on the horizon, is DirectX 10 really worth spending time with? They require the same hardware, and with 10's lack of substantial use, it seems like it'd be a logical choice for many to just forget 10 exists and move on. thoughts? opinions?
--------------------------------------Not All Martyrs See Divinity, But At Least You Tried
XVincentX
XVincentX
I agree with you. I think D3D10, even with a lot of new features, was fondamentally a way to let us buy new video cards (economical crysis...)

The worse is Geometry Shader, COMPLETELY useless in my opinion.
D3D11 looks like very priminent and with features that would let us implement also features of D3D12,13,14 using Compute Shaders.

I think we will stay on it for A LOOOOT!
ankhd
ankhd
no the Geometry shader is cool.
Hope it's here for a bit just spent 8 month on using DX10.
XVincentX
XVincentX
Explain me why please.
ET3D
ET3D
The geometry shader can be pretty useful. AFAIK the only reason it's not used much is bad performance on NVIDIA hardware.

Not sure where XVincentX is coming from, slamming D3D10 as "a way to let us buy new video cards" then thinking that D3D11 is great. D3D10 was a major departure in API and features, which is also why learning D3D10 currently is useful as a way to transition to 11. 11 builds upon 10, and while it adds some nice features, it isn't a major departure in terms of API.
XVincentX
XVincentX
Quote:
Original post by ET3D
The geometry shader can be pretty useful. AFAIK the only reason it's not used much is bad performance on NVIDIA hardware.

Not sure where XVincentX is coming from, slamming D3D10 as "a way to let us buy new video cards" then thinking that D3D11 is great. D3D10 was a major departure in API and features, which is also why learning D3D10 currently is useful as a way to transition to 11. 11 builds upon 10, and while it adds some nice features, it isn't a major departure in terms of API.


Please let me explain better my point of view.
D3D10 is very well structured (infact D3D11 continues on the same structure), and there are also very nice new features (Stream Output, Constant Buffer).
But Geometry Shader, in my opinion, it's a complete failure. It was (as i found on internet) the way to make tessellation (you should remember the very famous video of water tessellated using Geometry Shader, in which a grid of point was moving and simulating ocean.). But, for some problems (as we can see, Geometry Shader has got POOR performances and not only in nVidia, (i've got an ATI 4870x2 and it sucks too).

Mabye my reasonement it's completely wrong, take it as a vent given by a dreamed tessellation that did not come in D3D10, spent a lot of money to but a Video Card to know that less than 4-5 months you have to buy a new one in order to upgrade new features (and WHAT features!)

So please excuse me for the previous post like a noob's one.
Martin
Martin
At the moment DX9 is popular still due to the large install base of XP and the fact X360 uses DX9 (+ a bit) however this situation will change. DX10 is worth spending the time with if you intending on using any future DX versions.

AAA PC developers have DX9 and DX10 ports of their engines but if you're looking to get a job as a graphics programmer in the industry DX10 is a + point over DX9 (which is still good) Of couse move up to DX11 as and when you can.
Cheers,MartinIf I've helped you, a rating++ would be appreciated
jollyjeffers
jollyjeffers
Quote:
with Windows 7 and DirectX 11 on the horizon, is DirectX 10 really worth spending time with?
No, move on.

If you're due to release your application before Win7 (Late October '09) then I'd recommend using 10.1 over 10.0 but in all other cases you really want to be working with 11.0.

Some of the new features do require additional (as yet unreleased) hardware but you can get the cleaner API and both multithreading and down-level hardware support regardless.

All that said, using 10.x now is not the end of the world - most code and algorithms written against 10.x will be trivial to port up to 11.x and the basic concepts are the same.

Quote:
But Geometry Shader, in my opinion, it's a complete failure. It was (as i found on internet) the way to make tessellation (you should remember the very famous video of water tessellated using Geometry Shader, in which a grid of point was moving and simulating ocean.). But, for some problems (as we can see, Geometry Shader has got POOR performances and not only in nVidia, (i've got an ATI 4870x2 and it sucks too).

Mabye my reasonement it's completely wrong, take it as a vent given by a dreamed tessellation that did not come in D3D10
I understand your complaints and I can see exactly where you're coming from but, unfortunately, you're just plain wrong about the Geometry Shader. Lots of people were, so don't worry about it [smile]

The message broadcast by various parties (Microsoft included) did not make the GS's purpose as clear as it should and they definitely gave the impression that it was a general purpose tessellator. It wasn't. Just looking at the HLSL and hardware specifications will show that, at very best, it would have been a lame tessellator and not really capable of most high-end algorithms.

My take on it, and one that seems to have slowly come to the fore, is that it was just a means by which shader could could work at the topological level. There were a lot of limitations with the VS/PS pairing around the context at which you were operating - being able to "see" the whole primitive made a lot of sense for various algorithms. Being able to work with this new topological information required the ability to both read and write to it - hence all the fluff about "smashing the one-in, one-out paradigm".

Yes, people wrote algorithms using the GS that you could think of as tessellation (e.g. displacement mapping and shadow volume extrusion) and had some success, but compare that with the design for D3D11 tessellation and you'll quickly see that the GS just won't cut it...

I suppose in a nutshell it was often the wrong tool used for the wrong job [headshake]


hth
Jack
<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ |
XVincentX
XVincentX
I saw your developer journal...are you making all your code D3D11 using reference rasterizer? Have you got a super CPU??
jollyjeffers
jollyjeffers
Quote:
Original post by XVincentX
are you making all your code D3D11 using reference rasterizer?
Yup, RefRast FTW! [cool]

Quote:
Original post by XVincentX
Have you got a super CPU??
Quad core 3.1ghz isn't too shabby... until the system disk fails and the computer won't even boot anymore [bawling]


Jack

<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ |
DieterVW
DieterVW
With regards to DX10. The API for DX11 has several differences, most of which are trivial, and were done to help with multithreading. In a nut shell, DX11 is built at the core on DX10, so it wasn't a waste. DX11 just builds in new features to DX10, so any knowledge you have will transfer easily. It's a question of how do you get here from there? Since DX11 supports featurelevel 10, it means that you can use shader model 4.0+ to target the hardware of the underlying machine. In this sense, the shader model is still very relevant.

Of course, that said, coding to DX11 is the preferred approach.

Geometry shaders just aren't for tessellation. However there are several things they are good for, including converting a point into a screen aligned quad of any size, creating new particles in a particle system running on the GPU (or killing off particles), and other cases where you might what algorithms for amplifying or compressing geometry. Performance has improved with new driver releases, but of course you pay a price for each stage of the pipeline you enable. It's up to you to determine if that price is minimal, or if there is another approach.
rouncED
rouncED
Yeh as far as using the geometry shader, maybe it would be good for grass, explosions smoke... all the billboardy type stuff.
Jason Z
Jason Z
There are many ways to use the geometry shader - you just need to think outside of the box, and don't rely on the internet to tell you how to use it! I have used it for environment mapping, particle systems, and GPGPU applications to name just a few. Take a look at the book link in my signature for implementation details... Plus take a look at Jack's journal for debugging using the geometry shader as well... There are good uses for it out there!

Also, if you learn (or have already learned) D3D10 then the knowledge is almost directly transferrable to D3D11 as 99% of the API is carried over. One thing to keep in mind about the D3D11 as a target API - the documentation isn't even close to being final and there are many places where it is just plain wrong. This is only a CTP release, which will improve in the future releases for sure. But if you don't have time to decrypt the documentation, then D3D10 would still be a logical choice for short term projects that can use the geometry shader.

So to answer the question, why wouldn't you want to understand how D3D10 works? It will help you on D3D11!
Jason Zink :: DirectX MVP   Direct3D 11 engine on CodePlex: Hieroglyph 3 Direct3D Books: 

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.