Real DirectX 11

enewmen

Distinguished
Mar 6, 2005
2,251
5
19,815
Over two years ago, I started a thread on what to expect in DX11 (many wish that thread would die). Some thoughts where real-time ray-tracing and photo realistic renderings. People have been reading rumours, the crystal ball, counting tea-leaves, and bumbs on my head. Though I really appreciate all the contributions, most of the early theories where completely wrong.
Now in 2009, we have a very clear understanding on what is DX11, so I wanted the new thread to focus on what's REAL and not hypothetical.

These are the topics I hope to discuss in more detail:
* High Level Shader Language (HLSL)
* Shaders in detail
* Tessellation
* Enhanced multi-core, multi-thread use
* GPGPU, GPU Physics, GPU video recoding, OpenCL, etc.
* DX11 cards and other hardware
* Advanced topics, Complex Single and Multi-Pass Shading, etc.

I am personally happy DirectX 11 will arrive shorly and DirectX 10 will have a short life. I read lots of articles about how DX10 is expected to run more efficiently, more capability, etc. I just never seen it in any form. All I noticed was DX9 always ran more smoothly than DX10 and XP ran more smoothly than Vista. My rig has plenty of RAM and usually don't notice the problems, but some times I need to scale down like I described to make some apps useable. I also hope all 32 bit apps die quickly as well, but that's another topic.

What I hope to see soon is fast & good GPU video recoding. Other big performance gains by offloading to the GPU. Software created much faster & better through the use of easy to use gaming engines, Tessellation, and not needing to re-invent the physics wheel. Much more realistic physics and old problems with visuals (objects poking out of other objects) will be eliminated. Direct Physics?? Other uses of offloading GPU tasks to the GPU. Better rendered screens always helps.
 
It seems this is a step in the right direction, only if picked up by all the devs out there, and companies alike for gpgpu solutions, and MT charactaristics in games. Who knows the impact on tessellation on gpus at this point? Will all the ugly faces finally go away in games now? Will DX11 allow for DX10 cards to MT in games written for it? Oh, and I still say, if it doesnt come before W7, its been delayed because of LRB, as was said by me in the original thread
 
This is my problem: With XP still hanging around, all games will have a DX9 path for some time. And DX10 cards are what the overwhelming majority of users have, so DX10 support will be included with most all games that choose to go DX11. As a result, a DX11 game will need to also contain both DX10 and DX9 codepaths, while at the same time having to support both XP and Vista 32/64.

Sorry, just don't see programmers going to all that extra effort, when you can still make beautiful DX9 games. DX9 will still be the primary DX version for at least two more years, with the first DX10+ exclusive games not showing up till at least spring 2010.

EDIT

I think MS may have to port DX10+ to XP, simply to get the DX API's on both OS's the same. XP is having the same effect that the battle between Voodo (Glide) and NVIDIA (Direct X) had all those years ago: forcing developers to code to the lowest common standard (DX9 in this case).
 
Theres an article over at anandtech about DX11 says it will be a strict superset of DX10.1 and the way I understand it anyway is DX11 cards will probably be fixed function tessellation units instead of programable. Anyway looks to fix all of DX10 shortfalls if their right and all goes well.
 

While I believe the first DX10 games to be out early 2010, why not just just make the first exclusive games DX11? I don't want to talk too much about about hypothetical because the thread is about "real" products. But at that time, even the low-end cards (at least better than integrated) should be able to run current modern games at better than low-settings.
Anyway, this will be a good time to put an end to DX9 and 32bit so developers can stop making 6 versions of the same software.
 

I found many links that show DX11 will come with Vista SP2 long before Win7 final release.
You can run DX11 games with a DX10 card. Just a few features or performance will be removed/lowered.
Is this what you where looking for?
 
Some of the best info on DX11 (how the 'pipeline' looks, Tesselation, compute shaders, etc) can be found here;
http://www.xnagamefest.com/presentations08.htm#GRAPHICS_

It was referred to in Anand's article and we discussed it at the time.
Lotsa good in depth information there.
 
With regards to the XP thing, not a chance will M$ be dumb enough to put DX10 nor DX11 on XP, like it or not M$ isn't going to spend any resources to continue XP optimizations and focus anymore than they did on Win98SE when it was the gamer's choice over XP, eventually everyone moved, just like they will with Vista and Win7.

XP will die, and gamers WILL move. PERIOD. They may move to consoles, but most of those people were moving there anyways, and wouldn't be the cutting edge gamers anyways if they were looking for the limitations of consoles.

There may be support for DX9 & DX10, but that doesn't mean XP, that's a codepath in addition to the DX9 WDDM codepath, so it will go away eventually too.

Just like 64bit is becoming more common, and so is driver support, so is VIsta support, which will only folllow-through further with WIn7.

DX11 is a big enough split from the XP past to offer no reason to focus on it anymore than people still code for Geforce 3&4/FXs or Radeon 9500/9700/9800 & Win98/2K despite their widespread presence.

At this point in time it makes far more sense for M$ to force a split between high end computing and lower end computing, there is absolutely no reason that gamers should be running their uber rigs with the same limitations as casual surfers on their netbooks.
 


Why make DX11 exclusive games where the only cards that will support DX11 at the time will be ~$500+, especially when everybody has a DX10 capable card? It makes no sense economically. Its those same economics that force DX9 to be standard; While most everyone has a DX10 card, upwards of 35% still use XP over Vista.




Software companies won't follow that model, and MS knows it. And BTW, my argument was that as long as XP is limited to DX9 and remains in use (>20% market share), most everything will be designed with DX9 first, with DX10+ comming later.


With a glut of DX10 cards in use, and XP stuck at DX9, you will not see a major pickup of DX11, for the same reasons there wasn't a major pickup of DX10. I believe XP being in use will hold back advances in Direct X for at least 2-3 years (the time it will take for XP to decline + development time for new games).
 
Well vista was a failure microsoft even admitted to that very bloated operating system for gaming and before anyone blast me here were talking gaming not everything else you can do with it. With all the different versions that microsoft comes out with now of the same OS and with there commitment to gaming on there OS, microsoft said that not me. Why dont they come out with an OS thats for gaming without all the bloat, just need to be able to surf the net for drivers and maybe new computer parts. That for sure would probably sell lots of people 2 versions of the OS, they just need to make sure that the bloat is really gone so you can see some real benefit from it, more resources towards games. Thats what I'd like to see as I mostly game with my computer and like to build my own.
 


I've been thinking of the same thing, a gaming optimized version of windows. Never will happen though...
 
Probably not but would show microsoft is really committed to gaming on thier OS, but we really know thier only committed to money. They don't really care if your gaming experience is good or not they just try and force the new OS down your throat.
 
I think a gaming optimized version of windows is a terrible idea. While I do not do anything intensive other than gaming, I still use and would like to use the OS' capabilities. I don't understand what your talking about with this "bloated" thing. I see absolutely no performance difference between the 2 except where Vista is optimized to be faster. Vista was only a failure thanks to the bad press it got early on and the people who bashed it because they did not want to shell out the money for it. Besides Crysis what games run slow now? Crysis is only a resource hog because of how spectacularly unoptimized and poorly written it is.

As for the DX11 thing I am hoping for some REAL improvements like what DX9 brought or more.
 
Slightly off topic but i ran Crysis on a 3000+ athlon with 1gb RAM and a X1650XT, hardly major hardware, now Assassins creed on the other hand not a chance major slide show now there was a resource hog.

Anyway back on track, i was just wondering what peoples thoughts were on the possibility of making more than one version of games, A DX9 version a DX10 version and a DX11 version, Sorry i dont really know enough about the actual programming side of things to know how hard this would be, but was thinking maybe downloadable content games like Steam and Windows Live could provide this more easily than actually burning different versions to disc ?

Its just a thought although to be honest thinking about it if DX11 is a big enough performance improvement then the gamers who are clinging on to XP (that includes me :) ) will move OS

Mactronix
 
From my understanding, if you have DX11, you have DX10 or DX10.1, and possibly MT as well, even on DX10 HW. Having to code for DX9 on back is a major pain and costly , or more costly. DX11 wont require anything new in coding, actually be easier for devs, whether using DX11 or DX10, so, like Ape says, itll be time to move on. This gives the devs the impetus to easily write code, and dragging DX9 along means its back to the same old thing, plus DX11. Thats my take.
Ive seen the release dates before W7 as well, and thats what I thought was going to happen, but then theres been others saying it may come with W7, so who really knows at thise point. Im thinking its between Intel,ATI and nVidia, and having the HW ready. I do know LRB will be released late this year, but mainly for gpgpu usage, if you can call it that.
 
A DX11 "exclusive" game will run fine on DX10 and 10.1 hardware, you'll just miss out on some of the features that require DX11 hardware. DX11 is a superset as mentioned before, which is not like the DX9 -> DX10 transition. You could have a read of this thread over at XS where they were arguing about this for a long time.
 
Well for one you got to have more memory in most games to run it in vista and not because of DX10 and it doesn't really offer that much improvement over DX9 in my opinion. Not enough to make it not backwards compatible, matter of opinion I guess and I've read an article about multitreading that says vista is not much better at it than XP. They said that would change probably when you go to 8 or more cores though but they should have done more about that with vista in my opinion. It seems some like to be the first on the bandwagon with new tech and will defend it till the end no matter what like having a physx card that company is gone now Nvidia bought the tech.
 


Says who?
M$ thought Vista alone at inception had enough to make people follow that path and developers initially followed them there too. Now with over 100 million Vista users and many uber gamers moving to vista too for just the DX10 benefits of their old GF8+ & HD cards you think any developer is now coding games thinking... well wonder what the small percentage of the wedge does?

Yeah, sure that's why Ubisoft and others moved to SM3.0 when there were still a large number of DX9 SM2.0 cards out there.
Seriously, show me any software company that says, 'geez, wish we had less tools'. Everyone was talking about the benefits, look at Epic's comments, Crytek's comments, they wish they could drop the old and focus more on the new.
You seem to think it's a burden to them to use DX11 and drop old XP+DX9 support versus not implementing DX11 and then making a seperate XP coodepath. Nah, if anything they'd love to move past even Vista DX9 support, but that's the nice X360 sweetspot and THAT means alot more to devs than XP for gaming.



For now, but now for long, and DX9 is not the same as XP, you seem to not understand that XP+DX9 can easily be dropped while keeping Vista+DX9 which is also easier to code for. XP support would go before DX9. Just like Win 98 support died before DX8/8.1 did. XP also got an initial bad reaction at launch and for about a year afterwards, while Win 98SE was still the 'gamer's OS', but that changed to, and so will the XP - Vista/W7 equation.



This isn't your father's DX launch, Vista was untested and had a tiny fraction of the userbase when DX10 launched, when DX11 launches there's going to be as many times more new PCs shipping with Vista than XP than the other way around at DX10's launch.

XP won't hold DX11 back anymore than Win 98SE held SM3.0 & DX10 back, nor should it.
Those who want to stay on XP can also stay on CS, HL2 and D3, everyone else will move on, just like they always have.
 

As well as DX10 hardware, even if it is entry-level.
 
TheGreatGrapeApe, you are totally missing the point. You do not drop support for something that would cause a drop in sales. Period. If your logic was true, we would be having Vista only DX10 games by now.

XP has significant market share. All i'm saying, is as long as this is the case, you won't see a major adoption of any technology that won't run on XP DX9 and SM 3.0. You may see a DX9 game with DX10+ add-on features, but thats it. And trust me, no one will put much effort into three seperate coding paths for any game. Doing so would only cause all the implementations of DX to be half-hearted at best, and you will see a bunch more Cysis's simply due to all the overhead that would go into coding for each version of DX (DX9 XP, DX9E Vista, DX10, DX11).

Yes, Ubisoft upgraded to SM3.0 while a lot of people still had SM 2.0 cards. The diffrence is, that you could slap in a new card and be done with it, instead of having the upgrade the card AND install a new OS as a requirement.

As you said "XP won't hold DX11 back anymore than Win 98SE held SM3.0 & DX10 back, nor should it.". You forget, that 98SE did not have that large a market share, and was not a player in the gaming market at the time of Vista's launch. For XP, that statement is not true. XP will hold DX11 back as long as it holds market share, pure and simple.

Also note, due to MS's requirements for DX capable cards starting with Vista (every feature must be supported to be a compliant card), DX10 cards will have zero DX11 support period, and will run a strict DX10 codepath. The argument that DX11 is a supraset of DX10 is totally irrelevent in this discussion.

It comes down to sales, period. What generates more: Ignoring XP and using cutting edge requirements, or by using the best of a earlier software version everyone can use?
 
Its my understanding that what is being said is that a DX11 code path can run on a DX10 or 10.1 card(because its a subset) but with reduced abilities. So if you code for DX11 you are by default including support for DX10 amd 10.1 compliant cards.
I dont think anyone is saying that todays DX10/10.1 cards could run full DX11.

Mactronix
 


The people saying that have no clue what they are talking about, I'm afraid. DX10/10.1 will have to be a seperate code path, plain and simple. Anyone saying otherwise needs their head examined.

DX10 cards will not be able to run a strict DX11 code path due to hardware incompatability (Tesselation being the primary example here), even though DX11 is a supraset of DX10. You would need two seperate code paths, one for DX11 and one for DX10. Its not a matter of software, its a matter of hardware.

Throw in DX9E and DX 9.0c, and you see why I don't see a wide adoption of any new DX version until XP goes by the wayside, which I think will take until at least Windows 7 SP1...and thats assuming 7 is a good OS.
 
I think your target of Vista.2 oh sorry Windows 7 SP1 is about right, i have been saying for a long time now that this is going to depend on what benefits DX11 actually brings to the table.
If its faster than XP and looks better as far as gaming goes then thats the signal for XP to pack its bags and clear out, i cant see the point of sticking with XP after that (im running XP now by the way) what with the benefits of the extra RAM you can run with a 64 bit OS i will be stepping that way myself once the performance is proven. Will it be Vista or W7 well that depends how well w7 is received and what the reviews say but im hoping for good things.

Mactronix
 
Has everyone read the anandtech article cause they are saying microsoft is trying to make it easier for software companies to wright for only having to code for DX11 if you got DX10,10.1 it will still work only you only got limited functionality to your hardware. Now saying you only have DX9 hardware or OS then yes different code path is a must then.