It looks like you're new here. If you want to get involved, click one of these buttons!
http://blogs.msdn.com/b/directx/p/directx12.aspx
Speculation thus far has centered on an AMD Mantle-like effort at reducing CPU overhead. I'd also like to see tweaks to make order-independent transparency practical without requiring excessive hackery on the part of the programmer, as that's the sort of thing that a GPU really should be able to handle automatically, as there's one obvious intended thing that a programmer will want with transparency.
I'm also curious what GPUs will be supported. Will any cards currently on the market support DirectX 12, without the stupid feature_level gimmicks? If so, which ones? Or will only future cards support it?
Comments
"An it harm none, do what thou wilt"
Microsoft doesn't pull DirectX specifications out of thin air. If they did that, it would be about three years before anyone could support it, as that's how long it takes to design and build a new chip. They talk to the companies that will implement it a lot before the public announcement.
OpenGL does largely the same thing, with the difference that the Khronos group largely consists of the companies that will implement it. If the various GPU vendors tell Microsoft to put something into DirectX 12, then it will probably come to OpenGL before long.
What I'm curious about is whether the OpenGL equivalent of DirectX 12 will be another 4.x variant like 4.5 or 4.6, or whether it will be OpenGL 5.0. With both the 3.x and 4.x versions, the basic theme seems to be that something doesn't get added to OpenGL 3.x unless all GPUs that support 3.0 can support it, and similarly for 4. Thus, all GPUs that support OpenGL 3.0 also support 3.3 except for Intel's Sandy Bridge GPU, and that's only because Intel doesn't care if their drivers work.
I find it interesting that there was a lot of talk that DirectX was dead when XNA was canned, and there hadn't been any talk about a new DirectX revision level before the XBox One was released (which would have been perfect timing - new console, new DX Tools to leverage it)...
Instead, now that we see headlines like Sony's PS4 outsells Xbox One nearly two to one, clearing 6 million global sales and Did Nintendo's Wii U Just Outsell Microsoft's Xbox One?.... now we see news about DX12.
By the time Windows 9 is out and with it DX12 Mantle will be finalized and have pretty widespread support.
If NV adopts Mantle then DX12 and Win9 will be dead in the water. We might even see AMD APU+NV configurations.
It's all speculation though.
Even though Mantle is going to be an open API MS will have to be very careful to avoid a patent lawsuit in making DX12.
If DirectX 12 can do roughly what Mantle does, then once it launches (presumably later this year), if a game developer has to choose between using Mantle to support AMD's GCN GPUs only or DirectX 12 to support everything, why would any sane developer choose the former? If you're thinking of non-Windows gaming, then replace DirectX 12 by the equivalent version of OpenGL.
Mantle is dead the day DirectX 12 launches unless AMD pays developers to use it instead or the new versions of DirectX and OpenGL both fall woefully shy of Mantle. Neither of those are likely, and even if one or both occur, Mantle would still be nearly dead.
DirectX 12 has surely been in development for a long time--and AMD was just as surely deeply involved in its development. If AMD tried to patent things involved in it without making those patents freely available for use in DirectX and OpenGL, they'd quickly become just as much of a pariah in the industry as Rambus, and for the same reasons. And even that is assuming that the patents held up in court, which is far from certain. What's the last new product to use any sort of Rambus memory standard, again?
-----
As to Ridelynn, yes, the PS4 has greatly outsold the Xbox One. But even that edge has been held down considerably by limited availability of the PS4, as they were constantly sold out. Had there been plenty in stock, the sales discrepancy would probably be wider yet--and possibly a lot wider.
Is that why DirectX 12 is on the way? Doubtful; DirectX is one of the big things that pushes a lot of people to use Windows rather than Linux--because games that use DirectX will only run on Windows. If OpenGL continues advancing and DirectX doesn't, then games will have to use OpenGL if they want the best graphics API and DirectX will die out. It would take several years for that to play out, but Microsoft really, really doesn't want a lot of people saying, hey, I don't need Windows anymore, as Linux can do everything just as well for free.
That must surely be the strongest driving force behind continued DX development. Microsoft will protect the position of their OS for as long as they can. That kind of advantage is never given up willingly.
Windows 9 April 2015. 13 months is a long headstart where most new game engines will have baked in Mantle support. Nvidia is working on it's own solution.
No DX12 hasn't been in the works for a long time.
Read http://www.extremetech.com/gaming/177407-microsoft-hints-that-directx-12-will-imitate-and-destroy-amds-mantle
DX12 will be locked to Win9. If there are options just as good as DX12 such as Mantle and NVAPI 2.0(possibly) would you as a developer use DX12 and lock your game to Win9 or would you put in a bit more effort and and use Mantle/(Whatever NV comes up with) and make your game available to all windows OS versions.
NV isn't going to just sit on their asses till mid 2015 while Mantle carves its way forward. And MS isn't going to release DX12 to Win 7/8. If NV is smart it will come up with it's own API that has feature parity with Mantle or adopt Mantle. Either way DX12 and Win9 are direct responses to Mantle. If MS just made DX12 for Win8 they are still left with their problems that is Win8. Making both solves both MS's problems and is probably the lesser evil being a slight backlash with W8 and W9 being so close together. MS will probably offer W9 as a free upgrade to W8.....although I'm not holding my breath on that...
GDC 2014 will be interesting I'm sure. and it might put more light on all of this. Mabye MS pulling the trigger on DX12 will force AMD to tie up the Mantle SDK and make it available, who knows.
I'm not all that convinced that Mantle really matters much either. I rather think it's more or less a marketing gimmick than anything.
Sure, it's neat, but it's hardly all that and a bag of chips. It would work well on consoles, if they would support it. It works wonders on an APU, if you can get developers to use it. Developers now are toying with it, but being limited to newer AMD video cards and APUs, it has a long uphill battle ahead of it if it wants to remain relevant.
I predict it will pretty much mirror PhysX - a handful of high profile release games, and not really anything outside of that.
For all of this "AMD Mantle is going to reduce driver overhead by so much as to take over the world", here's a question for you: what if OpenGL can already do it? Lest you laugh, here's Nvidia's take on reducing driver overhead:
http://www.slideshare.net/CassEveritt/beyond-porting
I'm not impressed with the stuff early on about particle effects. He starts by saying, here's an incredibly stupid way to do it, and you can improve it greatly by doing it in a somewhat less stupid but not terribly modern way that has been available since OpenGL 1.5. But let's move past that to reducing driver overhead for draw calls, uniform updates and so forth.
Cool upcoming features? ARB_multi_draw_indirect was added in OpenGL 4.3. ARB_buffer_storage was added in OpenGL 4.4. ARB_bindless_textures isn't yet part of the core OpenGL specification, but the ARB designation means it's officially blessed by the Khronos group rather than a proprietary extension--and the extension itself has multiple contributors from each of AMD and Nvidia.
Both AMD and Nvidia already support OpenGL 4.3. Nvidia recently released their first OpenGL 4.4 drivers; AMD hasn't gotten there yet, but surely will.
-----
OpenGL isn't just for Linux. It runs on Windows, too. And Mac OS X, for that matter. And soon, Android. If sound is a barrier to Linux gaming (I have no idea whether it is or not), that doesn't mean you can't use OpenGL for Windows together with something else--possibly even DirectX itself--for sound. That wouldn't be enough to kill Windows, but it would still kill Mantle.
Yeah, sound is a lot bigger problem than Video.
ALSA is ok, but just that. It's kinda like if you had to run Windows with the default VGA driver for graphics - it works, mostly, but not really.
For video there are really only 2 (ok 3) big players for drivers. They typically release a closed-source driver for their cards, and there are some open source alternatives, and some level of generic driver that will work regardless.
For audio, there's.... none of that really. ALSA tries really hard, but it isn't quite there just yet, especially if you have one of the more exotic sound cards or USB devices.
You can say sound isn't a big deal in gaming, except... it really kinda is.
Nvidia dosen't have a complete package like Mantle. They would need to merge Cuda with NVAPI and OGL. Then NV would have to rewrite everything to make it multithreaded and aware of all the other processes. I highly doubt NV will design it to be open like Mantle.
I cant imagine that happening anytime soon. Even MS will have a tough time making it's W9 deadline with all the back and forth bantering between MS/NV/AMD. I think the smoothest outcome we could hope for is a combined effort between all 3 parties. I somehow don't think that is going to please NV having to wait for DX12.
We still know very little about MS/NV plans. Without that all we have is mabye's and supposition.
I remember my experience with open gl. I had weird flickering on the monitor. Although I was a noob at the time and did not adjust for it, it was a driver issue and for a noob to go through that was a rough experience.
Maybe it's better now. But from my experience I would throw anvils at a drowning open gl. I don't trust them, and wouldn't want anyone to go through what I went through.
Write bad things that are done to you in sand, but write the good things that happen to you on a piece of marble