What Happened to DX10?

Alia Nexis

Weaksauce
Joined
Mar 1, 2007
Messages
92
It's like everyone decided it was terrible and skipped over to DX11. Games like Dirt 2 and Crysis 2 have (or will have) DX9 modes and DX11. Was it the poor reception of Vista that made devs move on? There's a generation of cards that only do DX10 that are going to waste.
 
Ya seems like it was a transition/wake up call for devs just like Visa. Didn't seem like Microsoft wanted to have anything do do with the naming and just re-branded it 11. Kinda like how 7 is 90% Vista, is all in the perception
 
Agreed, pretty much the only game of 2010 with DX10 effects was Metro 2033 and Just Cause 2 (and none at all this year).
 
DX10 was not crap...

DirectX has had several "rewrites" during it's history. DX1 was the first revision, at DX5 was the second revision, DX8 was the 3rd revision, and DX10 was the 4th revision. Where things changed alot in the API, and required a good chunk of the code to be reprogrammed. By the time the developers were learning DX10, DX11 was already deployed with additional goodies. Tesselation, more multi threaded support. DX11 is backwards compatible with DX10, when creating a DX11 app, you can specify it to "downgrade" back to DX10 for those who only had DX10 graphics support. That was one of the major revisions to DX10... The model was there, and is a solid model, but the point being, by the time people updated their code, DX11 was already ready to go in beta/production form, so there was no point creating a DX10 only app, when you can write it for DX11 and have it backwards compatible.
 
plus Vista sucked, so most people (like us) upgraded to Win7, which came with DX11
 
It was crap, so developers mostly skipped it.
D3D10 is fine, but early hardware drivers were very poor. Given that D3D10 was a fairly radical change, this was to be expected. D3D11, on the other hand, is merely a superset of D3D10. In Microsoft's words, "DX10 with more features" (paraphrasing). The setup and state system is practically the same; the pipeline is practically the same; very little has changed. Hardware manufacturers only had to add support for D3D11 features and conform to the requirements of the D3D11 feature level and they were done.

EDIT: Oh, and like Scooby said, D3D has feature levels and backward compatibility now. Write a D3D11 renderer and you also have a renderer that works on D3D9 and D3D10 hardware so long as manage your assets properly. When you don't use any SM5.0 features, tesselation or DirectCompute, you write a D3D11 path and you get the perks of the API changes (like multi-threading) for free on D3D9 and D3D10 hardware/drivers. Given that, there is absolutely no reason to write a D3D10 renderer anymore. If you want to use D3D11 features, you set up alternatives for previous feature levels that reside within the same codepath.
 
Last edited:
DX10 wasn't really a massive improvement in user end features, the main reason for the switch to DX10 is because the driver model for Windows finally switched in Vista and a new version of DirectX was required to facilitate this move, overall the DX10 + new driver model is more efficient when used correctly although we didn't see that early on because the additional overheads of vista itself we significant to overshadow the DX benefits.

The lack of backwards compatibility for the first time in DX history (to my knowledge) married with the relatively poor reception of vista didnt make it an attractive upgrade path for a lot of game engines and developers.
 
If I understand correctly, the way DX11 works basically makes DX10 unecessary and obselete in a way. If you a game using the DX11 API/Path it will run on dx10/10.1 hardware but without the featres tha require a fully DX11 compliant GPU.

There's no need to have DX10 and DX11 is backwards compatible with dx10/10.1 hardware.
 
The lack of backwards compatibility for the first time in DX history (to my knowledge)
What are you talking about? Previous versions of DirectX also lacked backwards compatibility. Developers just used to put in codepaths for multiple versions of DirectX so their games would run on a larger variety of cards. Half-Life 2 was a good example of this; when it first came out, it had codepaths for DX7, DX8, and DX9.
 
If I understand correctly, the way DX11 works basically makes DX10 unecessary and obselete in a way. If you a game using the DX11 API/Path it will run on dx10/10.1 hardware but without the featres tha require a fully DX11 compliant GPU. There's no need to have DX10 and DX11 is backwards compatible with dx10/10.1 hardware.
That's correct. You can implement feature fallbacks to 10/10.1 and to 9 within the same codepath, so there's no compelling reason to set up a specific renderer for older APIs. There may be potential issues with the feature level system because you can no longer rely on capability queries, but I haven't heard anything about NVIDIA or AMD cards not properly adhering to the feature levels they report, so it's probably a non-issue at this point.
 
Agreed, pretty much the only game of 2010 with DX10 effects was Metro 2033 and Just Cause 2 (and none at all this year).

There were alot of games in 2010 that were DX10/11:

Battlefield BC2, Civ5, Company of Heros with patch, Dead Rising 2 was DX10, Just Cause 2, Medal of Honor (New version), War Hammer 40,000, Some other releases were there as well...
 
plus Vista sucked, so most people (like us) upgraded to Win7, which came with DX11

wow i guess people just say something to be troublesome because the other option available as to why you posted this means that humanity is doomed I tell ya........
 
What are you talking about? Previous versions of DirectX also lacked backwards compatibility. Developers just used to put in codepaths for multiple versions of DirectX so their games would run on a larger variety of cards. Half-Life 2 was a good example of this; when it first came out, it had codepaths for DX7, DX8, and DX9.

DX10 was the first version that would not run older apps. If you want DX 9 and older apps to run, you have to download and install the DX9 executable. Developers put in multiple code paths so that they can reach the broadest audience possible with their release. with few exceptions DX9 will run all previous version DX titles...DX10 on the other hand will not.
 
I thought he was talking about backwards compatibility in the other sense, but in that case, it doesn't make a difference, since there's still a version of DX9 for Vista and Win7.
 
That's correct. You can implement feature fallbacks to 10/10.1 and to 9 within the same codepath, so there's no compelling reason to set up a specific renderer for older APIs. There may be potential issues with the feature level system because you can no longer rely on capability queries, but I haven't heard anything about NVIDIA or AMD cards not properly adhering to the feature levels they report, so it's probably a non-issue at this point.

Word. :p Man I butchered my last paragraph.
 
There were alot of games in 2010 that were DX10/11:

Battlefield BC2, Civ5, Company of Heros with patch, Dead Rising 2 was DX10, Just Cause 2, Medal of Honor (New version), War Hammer 40,000, Some other releases were there as well...

They also worked perfectly in DX9 and they looked nearly as good.
 
They also worked perfectly in DX9 and they looked nearly as good.

The reason is most people don't seem to understand what DX 9 to DX 10 to DX 11 to DX whatever actually is. Everyone just assumes higher DX # means game should magically look better somehow. It is quite a lot more complicated than that.
 
So, from what I get, you could select a DX11 option in a game, and get some of the features supported by your DX10 card... if developers put it in. Anyone here know any games where that's been th case?
 
The only 'feature' you'd get is multi-threading. Everything else — tesselation, DirectCompute, higher limits on shader programs and so forth — is specific to D3D11. D3D11 doesn't let you expose those capabilities to DX10 hardware, but it at least gives you a fairly simple mechanism for saying "use this feature unless it isn't supported by the card's reported feature level, otherwise do this".
 
DirectCompute isn't tied specifically to DX11. Only DC5.0 is DX11 only, with DC4.0 working on regular DX10 hardware and DC 4.1 working on DX10.1 hardware. But I don't think any game developer has taken advantage of it's compatibility yet.
 
What are you talking about? Previous versions of DirectX also lacked backwards compatibility. Developers just used to put in codepaths for multiple versions of DirectX so their games would run on a larger variety of cards. Half-Life 2 was a good example of this; when it first came out, it had codepaths for DX7, DX8, and DX9.

It's backwards compatible in the sense that all the previous features of the older versions are available in the next version so when you install for example DX9 on a system all your DX1-DX8 games still work.

DX10 was the first to break this trend because the lower level driver model needed improving and this meant a DX rewrite breaking this chain of backwards compatibility, what they did in the end was write a new version of DX9.0c for Vista called DX9L which dealt with all the legacy stuff on vista. We should return to backwards compatible updates for DX10 onwards so DX10 effects can run natively with DX11 and when DX12 comes out it will perform both DX11 and DX10 effects natively, and so on.

When game developers write different code paths they're doing so because they can employ newer effects on the newer versions of DX but the gamer needs compatible hardware in order to run them, they often use fall back effects which do not have the same DX requirement, for example you might have 2 sets of shader code which produce a similar effect but one only needs DX9 shader support where another requires DX11, when DX11 isn't supported by the hardware then the fall back shader is used.
 
Last edited:
i was woundering this i moved to win7 to get dx10 on games and noticed that they were only running dx9 so in that case ill go back to xp and save on memory usage at the same point us a windows i feel much more at home with and yes i did check to see if dx10 was installed
 
A lot of games which people think have DX10 features, are simply DX 9 features which the devs were bribed to disable from the game and only allow users to enable it in options if they had a DX10 card. So the player would enable DX10 in options, thinking he's turning on DX10 features when in actuality all he's doing is enabling DX9 features which were disabled.

How do we know this ? Because modders/hackers/tweakers figured out workarounds to enable all those DX10 features for people who only had DX9 cards. Sometimes as simple as editing an ini file.
 
As I posted above, "How do we know this ? Because modders/hackers/tweakers figured out workarounds to enable all those DX10 features for people who only had DX9 cards. Sometimes as simple as editing an ini file." It's blatantly obvious what's going on. Obviously there will be no 'in your face' proof, because these sort of backroom deals are exactly that, backroom deals.

It's also no secret that NVIDIA used to use the TWIMTBP program as a means of legally bribing devs to remove features from games which ATI used to support but they don't (for example the HDR+AA a while back, or the DX10.1 not too long ago). Then as soon as the next batch of nVidia cards get released all the TWIMTBP devs magically release patches which enable these features in their games.

Rarely you'll get a dev speaking about the issue publicly. I remember one Call of Juarez dev saying in an interview the reason they removed the CoJ games from the TWIMTBP program was because of the kind of shit nVidia used to ask them to do. (the original CoJ was one of those games which magically started supporting HDR+AA as soon as nVidia released cards which supported it, all the while before ATI users could enable it via some hack while nVidia forced the devs to lie to the public saying the engine didn't support it).
 
As I posted above, "How do we know this ? Because modders/hackers/tweakers figured out workarounds to enable all those DX10 features for people who only had DX9 cards. Sometimes as simple as editing an ini file."
I read what you posted above. That isn't evidence that developers were "bribed" into disabling certain features in the DX9 path. The explanation could be much more simple: a feature was implemented in the DX9 path but disabled due to performance considerations.

It's also no secret that NVIDIA used to use the TWIMTBP program as a means of legally bribing devs...
If it wasn't a secret, it would be widely known. In other words, there would be compelling evidence to speak to it. Not mere hunches, suspicions, insinuations and accusations. These things are all nice things from a sensationalist's perspective, but aren't by any means proof.
 
As I posted above, "How do we know this ? Because modders/hackers/tweakers figured out workarounds to enable all those DX10 features for people who only had DX9 cards. Sometimes as simple as editing an ini file." It's blatantly obvious what's going on. Obviously there will be no 'in your face' proof, because these sort of backroom deals are exactly that, backroom deals.

It's also no secret that NVIDIA used to use the TWIMTBP program as a means of legally bribing devs to remove features from games which ATI used to support but they don't (for example the HDR+AA a while back, or the DX10.1 not too long ago). Then as soon as the next batch of nVidia cards get released all the TWIMTBP devs magically release patches which enable these features in their games.

Rarely you'll get a dev speaking about the issue publicly. I remember one Call of Juarez dev saying in an interview the reason they removed the CoJ games from the TWIMTBP program was because of the kind of shit nVidia used to ask them to do. (the original CoJ was one of those games which magically started supporting HDR+AA as soon as nVidia released cards which supported it, all the while before ATI users could enable it via some hack while nVidia forced the devs to lie to the public saying the engine didn't support it).

Do you know if Techland is a private or public company ? If they're a private company I wouldn't expect them to put up with Nvidia's crap in the first place. Although I guess some of the blame could go to Ubisoft as well.
 
Vista doesn't suck and Vista supports DX11. :eek: Oops

And before you try "Well it's better on 7", read this.

It actually kinda did suck. It got better over time but not what it should have been by any stretch of the imagination.

Vista supports DX11 but DX11 is more popular because it's also supported on an OS that doesn't suck that people actually want. That would be Windows 7
 
The only 'feature' you'd get is multi-threading. Everything else — tesselation, DirectCompute, higher limits on shader programs and so forth — is specific to D3D11. D3D11 doesn't let you expose those capabilities to DX10 hardware, but it at least gives you a fairly simple mechanism for saying "use this feature unless it isn't supported by the card's reported feature level, otherwise do this".

D3D10 gets a gimped DirectCompute too if I remember right.
 
A lot of games which people think have DX10 features, are simply DX 9 features which the devs were bribed to disable from the game and only allow users to enable it in options if they had a DX10 card. So the player would enable DX10 in options, thinking he's turning on DX10 features when in actuality all he's doing is enabling DX9 features which were disabled.

How do we know this ? Because modders/hackers/tweakers figured out workarounds to enable all those DX10 features for people who only had DX9 cards. Sometimes as simple as editing an ini file.

You've misunderstood. The DX10 features were DX10 because DX10 had better codepath, so you could run those DX10 features on DX9, everyone knew that, but the performance would be worse, that's why they usually weren't available in DX9 mode.

That was the theory behind it. Of course marketing factors in, but from a development standpoint, it was never stated that, a lot of the features, couldn't be run on DX9 hardware, just that the performance would be much worse.

Don't worry though, it wasn't just you who didn't understand this. So there was no reason for people to get upset when they found out that through modding, DX10 features could be run on DX9. People are just stupid.

Here's an article if you want to understand: http://www.bit-tech.net/hardware/graphics/2006/11/30/directx10_future_of_pc_gaming/3

DX10 brought a lot of good changes for devs (software and hardware), and DX11 keeps a lot of that and builds on it. DX10 was not a failure by any means, the perspective some people have on this is just... off.
 
Last edited:
Odex we know that's the theory, as Microsoft's PR department spewed it non stop when people were asking why they were rushing DX10 to be bundled with Vista. Unfortunately it almost never worked that way in reality, like less than 5% of titles actually showed improvement under their DX10 codepath, most games ran better under DX9 with the DX10 features enabled via mods/tweaks.

And yes there's a lot of speculation out there considering the backroom deals, but when the same BS happens so often and so predictably, it's inevitable that people will draw their own conclusions.

IMO the best thing for DX (and other similar APIs) would be for the developers to take their time and release them only when they are ready. Not whenever your company is releasing a new OS and needs an extra marketing bullet point. Microsoft needs to stop forcing their DX team to release a new DX prematurely whenever they release a new OS, and instead let them spend another 2 years working on it and release it when its actually a decent improvement over the last iteration.
 
Back
Top