My guess is they'd likely have separate feature levels, that way if 12 exposes something 11 cannot do, they can add it to the 12 feature level with bumping the 11 one.
e.g. 11_3, 11_4, 12_0, 12_1 << has 11_4 functionality + some more
Is 11.3 considered a new OS feature, or just an update to an existing deature? I'm curious as to whether this will work it's way into Windows 7, since 7 no longer receives new features(IE DirectX 12) after January.
If they're continuing to work on D3D11 and increment the version number, leaving it as a "high level" API, I think giving the low-level API the name D3D12 was really stupid and confusing. Should've been something more like "New Direct3D Low-Level 1.0" and "New Direct3D High-Level 1.0", both featured in DirectX 12. Ahh, naming hell.
I suppose this comes to us from the company that calls Windows 8.1 "version 6.3". Sigh.
That would be worse, starting from 1 again would confuse people as would the whole low-level vs high-level business. They're still the 11th and 12th major versions of the same API.
But 12 is a clear improvement over 11 in terms of performance. I doubt they'll keep developing 11 forever, and if they do, they'll probably rename it when 13 comes along.
I'm confused by this as well. The way it sounds now both APIs will continue to coexist and be developed in the future, as surely they can't abandon high level programming completely. I would have expected for DX12 to include any high level programming which DX11 provides, augmented by options for low level programming.
No it doesn't. There will still be the same high level language used, but the programmer will need to do more work in DX12. The API isn't going to do as much for them automatically in other words. What they will get for their effort is ultimately more performance from the hardware.
That depends entirely on what you mean by "high level programming"
DX12 is a completely new API. It is not a "superset" of D3D11 (that is, an 'ID3D12Device' won't contain the same interface functionality as 'ID3D11Device'). Instead they broke the APIs apart. those who want an easier programming model use 11. Those that want low level access use DX12. DX12 isn't meant for your average Joe. It's meant for hardcore engine developers like Epic, Id, etc. It requires a really deep understanding of the graphics hardware to use correctly, so it's not a hobbyist API.
Think of it this way. With the Unreal engine it is written with D3D 11.x API. It is compatible with Windows, Xbox, etc. Generally with any game engine there are two primary teams of programmers, ones that add features and one that makes the engine more efficient by taking the old engine and rewriting certain codes. With D3D 11 & 12, these two teams can do both at the same time faster. The adding features team adds D3D 11.x elements, while the other team converts features to D3D 12 bare metal for speed. D3D 12 takes features from D3D 11 and enables them on a lower level, so as D3D 11 grow D3D 12 will take older features and put them lower closer to the metal. You need both as D3D 11 can allow feature addition quicker, and allows time for hardware to catch up, then D3D 12 can take those features to the metal once the GPU vendors add them in hardware, also this allows for the features to be fully tested and any issues to be seen before abstracted to the metal.
so Dx12 contains low level APIs and DX11.3 will be high level, i dont get on why they didnt combine all APIs in one DX and called it DX12 or DX11.3, so using the same DX to access high-level and low-level APIs. stupid Microsoft as usual!
Maby DX11.3 and 11.4 will be only on ATI GCN Hardware with the new upcoming Update for Win8.1 Update2 and then Update3 with 11.4 ? And DX12 next year with Win9 (aka Windows) So the ATI have the R3xx Fijii and nV will have GTX1xx
I agree with others this naming scheme is not really confusing. Average user will not know whether the API is high level or low level under the hood. Direct X 12 will likely be higher performance, and future iterations e. G. Direct 13 will only add features to it.
For the most part DX12/11.3 "new" features sounds like...
features already present in OpenGL world at least in form of ARB extensions (which given current peace of OGL development mean lack of hw support in current gen hw for at least one vendor).
So maybe its time to stop looking at DX for innovation? (* Yes all the "lower level" stuff is good... and present in Mantle... )
Furthermore, the naming scheme is largely irrelevant to consumers.
Your hardware will work with versions of DX 11.x AND DX 12.x; the game will be coded by the developer using DX 11 or DX 12 (their choice) and it will run on your system using whatever they choose.
If you don't have the mental capacity to comprehend the running of two different code stacks in parallel, with correlation of features using the .x nomenclature, then you have serious issues!
DX 11.3 ~= DX12.0
then, in future for example DX 11.4 ~= DX12.1 DX 11.5 ~= DX12.2
[although it might be easier for traceability if MS launched DX 12 at "12.3" and stepped in tandem from there]
We’ve updated our terms. By continuing to use the site and/or by logging into your account, you agree to the Site’s updated Terms of Use and Privacy Policy.
24 Comments
Back to Article
jeffkibuule - Friday, September 19, 2014 - link
If I were a betting man, I'd say DirectX 12 launches with Windows 9 next April, with games in Holiday 2015.kitty4427 - Friday, September 19, 2014 - link
April seems to early. I'd say October (which was when Windows 7 and 8 were released).bountygiver - Friday, September 19, 2014 - link
April should be consumer preview, you can install them but they'll expire at release.CaedenV - Friday, September 19, 2014 - link
If I were a betting man then I would bet that you would be right :DWillardjuice - Friday, September 19, 2014 - link
So does D3D 11.3 and D3D 12 share the same "max" feature level? Or will there be an additional feature level 12 when D3D 12 releases?inighthawki - Friday, September 19, 2014 - link
My guess is they'd likely have separate feature levels, that way if 12 exposes something 11 cannot do, they can add it to the 12 feature level with bumping the 11 one.e.g.
11_3,
11_4,
12_0,
12_1 << has 11_4 functionality + some more
descendency - Friday, September 19, 2014 - link
The problem is that 11_4 has features 12_0 does not.inighthawki - Friday, September 19, 2014 - link
True. I don't know then.Mr Perfect - Friday, September 19, 2014 - link
Is 11.3 considered a new OS feature, or just an update to an existing deature? I'm curious as to whether this will work it's way into Windows 7, since 7 no longer receives new features(IE DirectX 12) after January.evilspoons - Friday, September 19, 2014 - link
If they're continuing to work on D3D11 and increment the version number, leaving it as a "high level" API, I think giving the low-level API the name D3D12 was really stupid and confusing. Should've been something more like "New Direct3D Low-Level 1.0" and "New Direct3D High-Level 1.0", both featured in DirectX 12. Ahh, naming hell.I suppose this comes to us from the company that calls Windows 8.1 "version 6.3". Sigh.
frostyfiredude - Friday, September 19, 2014 - link
That would be worse, starting from 1 again would confuse people as would the whole low-level vs high-level business. They're still the 11th and 12th major versions of the same API.MrSpadge - Friday, September 19, 2014 - link
If this turns outto be true they should have called "DirectX" "IndirectX" and used the direct naming for the new low level API :DNextil - Friday, September 19, 2014 - link
But 12 is a clear improvement over 11 in terms of performance. I doubt they'll keep developing 11 forever, and if they do, they'll probably rename it when 13 comes along.CSMR - Friday, September 19, 2014 - link
"Direct3D 12 will be the low level API, and Direct3D 11 will continue to be developed to offer the same features through a high level API"Does that mean you can't do high level programming in Direct3D 12? That sounds unlikely, and stupid if true.
MrSpadge - Friday, September 19, 2014 - link
I'm confused by this as well. The way it sounds now both APIs will continue to coexist and be developed in the future, as surely they can't abandon high level programming completely. I would have expected for DX12 to include any high level programming which DX11 provides, augmented by options for low level programming.Despoiler - Friday, September 19, 2014 - link
No it doesn't. There will still be the same high level language used, but the programmer will need to do more work in DX12. The API isn't going to do as much for them automatically in other words. What they will get for their effort is ultimately more performance from the hardware.inighthawki - Friday, September 19, 2014 - link
That depends entirely on what you mean by "high level programming"DX12 is a completely new API. It is not a "superset" of D3D11 (that is, an 'ID3D12Device' won't contain the same interface functionality as 'ID3D11Device'). Instead they broke the APIs apart. those who want an easier programming model use 11. Those that want low level access use DX12. DX12 isn't meant for your average Joe. It's meant for hardcore engine developers like Epic, Id, etc. It requires a really deep understanding of the graphics hardware to use correctly, so it's not a hobbyist API.
PanzerEagle - Friday, September 19, 2014 - link
Think of it this way. With the Unreal engine it is written with D3D 11.x API. It is compatible with Windows, Xbox, etc. Generally with any game engine there are two primary teams of programmers, ones that add features and one that makes the engine more efficient by taking the old engine and rewriting certain codes. With D3D 11 & 12, these two teams can do both at the same time faster. The adding features team adds D3D 11.x elements, while the other team converts features to D3D 12 bare metal for speed. D3D 12 takes features from D3D 11 and enables them on a lower level, so as D3D 11 grow D3D 12 will take older features and put them lower closer to the metal. You need both as D3D 11 can allow feature addition quicker, and allows time for hardware to catch up, then D3D 12 can take those features to the metal once the GPU vendors add them in hardware, also this allows for the features to be fully tested and any issues to be seen before abstracted to the metal.YazX_ - Friday, September 19, 2014 - link
so Dx12 contains low level APIs and DX11.3 will be high level, i dont get on why they didnt combine all APIs in one DX and called it DX12 or DX11.3, so using the same DX to access high-level and low-level APIs. stupid Microsoft as usual!LoccOtHaN - Friday, September 19, 2014 - link
Maby DX11.3 and 11.4 will be only on ATI GCN Hardware with the new upcoming Update for Win8.1 Update2 and then Update3 with 11.4 ?And DX12 next year with Win9 (aka Windows)
So the ATI have the R3xx Fijii and nV will have GTX1xx
AnnihilatorX - Friday, September 19, 2014 - link
I agree with others this naming scheme is not really confusing. Average user will not know whether the API is high level or low level under the hood. Direct X 12 will likely be higher performance, and future iterations e. G. Direct 13 will only add features to it.HisDivineOrder - Saturday, September 20, 2014 - link
Can't wait to see these features used in games in... 5-10 years.przemo_li - Tuesday, September 23, 2014 - link
For the most part DX12/11.3 "new" features sounds like...features already present in OpenGL world at least in form of ARB extensions (which given current peace of OGL development mean lack of hw support in current gen hw for at least one vendor).
So maybe its time to stop looking at DX for innovation?
(* Yes all the "lower level" stuff is good... and present in Mantle... )
Atari2600 - Wednesday, September 24, 2014 - link
The naming scheme is not confusing.Furthermore, the naming scheme is largely irrelevant to consumers.
Your hardware will work with versions of DX 11.x AND DX 12.x; the game will be coded by the developer using DX 11 or DX 12 (their choice) and it will run on your system using whatever they choose.
If you don't have the mental capacity to comprehend the running of two different code stacks in parallel, with correlation of features using the .x nomenclature, then you have serious issues!
DX 11.3 ~= DX12.0
then, in future for example
DX 11.4 ~= DX12.1
DX 11.5 ~= DX12.2
[although it might be easier for traceability if MS launched DX 12 at "12.3" and stepped in tandem from there]