Shawn Hargreaves Blog
It's all very well to say we could simplify caps management by looking at what is actually supported by real hardware, then bucketing everything into just a few of the more common combinations. But there is an obvious flaw in this logic: we can only examine the caps of hardware that exists today! What if we baked this into our API, then a new GPU with entirely different caps was released tomorrow?
Enter DirectX 10.
DX10 has no caps. All hardware is required to support the entire DX10 feature set*. So caps management is trivially simple.
But we must still support the huge install base of DX9 hardware, right?
Here's the awesome part: DX10 has taken over the PC market, even way down into the low power laptop integrated space, to the point where nobody is designing new DX9 hardware any more. The DX9 chips that exist today are all we will ever have.
The arrival of DX10 has frozen DX9 at a single moment in time. This lets us design APIs based on what combinations of caps exist right now, and be confident these decisions will remain valid in the future. Nice!
* note for pedants: ok, some format support is allowed to vary. But the number of optional features is extremely low.
Does this mean that XNA is going to support DX10 (or maybe even DX11) in the future? I hope so :)
Sounds more like he is saying there is no real need for now.
Which makes a lot of sense, for my projects at least. I havnt moved to DX10/11 since SM3 does almost everything I want(with a small decrease in efficiency/flexibility, for example no cube map/texture arrays for shadows, I need to expand these in the shader generator).
However what I am doing is unlikely to run effectivly on pre DX10 cards, due to performance and feature coverage(eg vertex textures, HDR blending, triangle throughput etc).
I was going to ask the same thing as Piachstein asked :P but then I saw his comment!
I absolutely loved that about DX10, no more caps. was really saddening to see DX10 get such a slow start because of general public disapproval of Vista.
as for XNA supporting DX10, that isnt that feasible as long as its a 360 API, since the 360 is DX9-based
I doubt that XNA will move to DX10/11 any time soon, since the 360 doesn't support it.
I know you want to keep the framework as consistent as possible between the various platforms but... Please give us XNA DX10 support for the PC.
Now I'm pretty sure that support for even DX11 is in reach. Windows 7 Phone, whatever its capabilities are, will probably be built on DX11 core. DX11 has several Feature Level sets. Windows 7 Phone might support only 9_1, but under the hood it will use DX11 interfaces, so why not let PC users access all (most) features of DX11 in XNA. Again, I hope so :)
as faer as i knew there are alot of laptop manufactures still using dx9 chips in low end laptops
> as faer as i knew there are alot of laptop manufactures still using dx9 chips in low end laptops
Sure. But these are all existing chip designs, and thus support existing sets of caps.
Manufacturing new instances of existing designs doesn't affect what combination of caps games need to support. The important thing is that nobody is designing new and different DX9 graphics chips any more.
please make the breaking change and bring the DX10 and 10.1 platform to the xna framework
it better this way the framework i 3 years old and need of a major upgrade with some new feutures