DirectX 12 introduces the next version of Direct3D, the graphics API at the heart of DirectX. Direct3D is one of the most critical pieces of a game or game engine, and we’ve redesigned it to be faster and more efficient than ever before. Direct3D 12 enables richer scenes, more objects, and full utilization of modern GPU hardware. And it isn’t just for high-end gaming PCs either – Direct3D 12 works across all the Microsoft devices you care about. From phones and tablets, to laptops and desktops, and, of course, Xbox One, Direct3D 12 is the API you’ve been waiting for.
It’s great that DirectX works across “phones and tablets, to laptops and desktops, and, of course, Xbox One”, but an important adjective is missing here: Windows. With Microsoft playing little to no role in smartphone and tablets, and the desktop/laptop market being on hold, how much of a plus is DirectX on phones and tablets, really? Doesn’t Windows Phone’s and Windows 8 Metro’s reliance on it only make it harder for game developers and houses to port their iOS and Android games over?
Personally, I’m waiting for /usr/lib64/libdirectx.so.
Personally, I don’t care about that.
Personally, I’m waiting for /opt/lib64/libdirectx.so.
I’m waiting for
/usr/lib/libglide4.so
How about /usr/lib64/libmantle.so ?
If only it was cross (hardware) platform.
hahaha I too am waiting for libglide to be create for wine. I just want to play my old games from 1994-1999. Is that too much to ask for? Noone is implementing directx immediate mode rendering so I will continue to wait to play good games. DirectX 10/11/12 don’t even have many games that use them.
Microsoft is going to stay in the doghouse until they fix control panel so that when you goto network it just brings up the adapters page again. Maybe with a network status indicator on it. Hell Linux with Network-Manager is more user friendly now for someone trying to setup networking! This adding extra steps to get to the IP settings screen is stupid. Apple haven’t changed their layout in over a decade. Microsoft try to change it every second release and just make it more messy and stupid. Ditto to the rest of the OS.
Edited 2014-03-22 10:20 UTC
Considering that OpenGL is already far better supported across a variety of platforms, what I’d hope for is for DirectX to die rather than having it on Linux. And even if DirectX ended up on Linux, it would essentially be in the same situation as wine.
Unfortunately, DirectX obviously isn’t getting killed off any time soon, but maybe as more gaming platforms other than Windows become important (e.g. Android, iOS, or SteamOS), developers will favor OpenGL over DirectX, and DirectX usage will go down, and if we’re lucky, it will eventually become irrelevant.
if ONLY SDL could match or exceed DX
I’d guess there is hope there if not immediately, what with Sam Latinga being at Valve now. I’m sure others are better informed than me.
What for? More patent minefields? Let’s wait for OpenGL 5.
Personally, I’m waiting for /opt/lib64/libdirectxtoopengl.so.
If anyone wants more information, this article was somehow related:
Valve has released ToGL as open source, a Direct3D-to-OpenGL translation layer, which the company itself uses for Dota 2.
http://www.osnews.com/story/27608/CryEngine_adds_full_native_Linux_…
This is the classic problem with how Microsoft is thinking today. Always this “Microsoft devices or the highway.”
I seriously hope their new CEO realizes that this old 90’s strategy is no longer working and start again making sure their products empower people using a mixture of solutions. It is not that Microsoft doesn’t have good products – they just deliberately gimp them.
About the new changes for Direct3D 12, they look very interesting. I’m looking forward to checking out the details when it is released and compare it to OpenGL 5 when that comes out.
I also really like how they are improving on the immutable state concept they introduced in Direct3D 10. Will be very interesting to see exactly how they designed the API for setting up those selector tables.
Of course Windows isn’t listed, because
“And it isn^aEURTMt just for high-end gaming PCs either – Direct3D 12 works across all the Microsoft devices you care about.”
Windows is not a device.
When asked if Windows 7 – users would get DirectX 12 they dodged the question and ended the interview. With that in mind, it’s unlikely that that’ll happen and Microsoft will instead use DX12 as yet-another trick to try and get people to adopt Windows 8.
Kind of sad, though not surprising. It’s just annoying to know that my hardware is perfectly capable of supporting DX12 and getting the benefits from it and there’s no technical reason for why my OS couldn’t support it, but it just all comes down to marketing.
They dodged most questions because it wasn’t a full unveil, just a preview.
However, DX11.2 isn’t even on Windows 7 (it isn’t even on Windows 8! 8.1 only) so it stands to reason that DX12 would be a bleeding edge technology, especially with the driver model changes that had to be made.
Mantle by AMD is similar in concept to a lot of the ideas here, works on Windows 7, but loses much of its performance enhancements.
There is nothing about DX11.1 that requires windows 8 other than marketing. I suspect that this will also be the case with DX12…
Edited 2014-03-21 18:42 UTC
There is partial support for DX11.1 in Windows 7 where possible:
http://msdn.microsoft.com/en-us/library/windows/desktop/hh404562(v=…).aspx
DX11.2 largely required driver model changes only present in Windows 8.x WDDM drivers.
DX11 has been with us for 4+ years and it is still barely used. So I think we can wait 3 years before even thinking that DX12 is relevant.
DirectX is a good API for gaming and is really fast however i would prefer to see OpenGL take off more and eventually become the standard for graphics programming due to it’s cross platform and open standard nature.
You create a game in DirectX and it’s hard to break out of the Microsoft ecosystem.
DirectX copying Mantle ?
Kochise
Yes, both DirectX12 and the next OpenGL will have features resembling Mantle, like e.g. much lower-level access to actual GPU-hardware. Khronos Group and Microsoft both saw the benefit Mantle offers and just had to do something to keep themselves relevant.
Can they match Mantle’s performance, though? Well, that remains to be seen. Neither DirectX or OpenGL was designed from the get-go for the same kind of stuff as Mantle, so there could still be some things hindering them from achieving the same kinds of results. I’m certain someone will soon perform heavy benchmarking.
I believe more in a OpenGL 5.x with a new level siding ARB and EXT, like LOW or GPU…
Kochise
OpenGL can also be made faster if one knows which APIs from the myriad of deprecated ones are the right ones to use:
http://blogs.nvidia.com/blog/2014/03/20/opengl-gdc2014/
This is the main issue with OpenGL. The amount of cruft, extensions and incompatibilities among versions that only OpenGL veterans know about.
Khronos should wipe this, and some driver coders should first get a degree and/or experience in CS.
Kochise
There are a few things that Microsoft really does well, and should be given credit for. DirectX is one of them. Pushing forward the graphics API isn’t something to scoff at. OpenGL plays catch up trying to copy what DirectX pioneers. 3D gaming isn’t big on tablets partially because a tablet’s touch interface doesn’t really work for 3D controls, and graphics card vender specific graphics APIs are far worse than DirectX from any freedom standpoint.
This is one thing may FOSS guys preaching OpenGL always miss.
– Not all OpenGL versions (mobile, web, desktop, embedded) are compatible
– You end up writing multiple code paths for supporting multiple vendors/targets
– Except for PS3 with ES 1.0/Cg, consoles do not use OpenGL
– C APIs for handling resources are a pain.
– OpenGL lacks standard way to load textures/fonts/contexts/shaders making each developer re-invent the wheel, or hunt for libraries.
OpenGL is certainly not without its faults (e.g. the extension situation with it is a bit ridiculous IMHO), but at least it’s intended to be cross-platform. DirectX is intended to be Windows-only. And it’s very bad for the general software ecosystem when technologies are tied to a specific OS. That fosters lock-in rather than innovation and doesn’t help consumers (or developers) at all.
Ideally, pretty much all software would be cross-platform within its domain (e.g. desktop, mobile, etc.). Reality doesn’t always allow for that, but creating libraries that are intended to only work on one platform is outright counterproductive.
Now, Microsoft doesn’t care about that, because they want a monopoly, but it’s bad news for the rest of us (including folks who just use Windows) when a technology gets pushed which isn’t cross-platform. It hurts consumers and makes it harder for developers to produce good, cross-platform software.
So, I’d much rather see Microsoft trying to improve their OpenGL implementation and helping to improve the OpenGL standard so that whatever problems OpenGL has can be fixed rather than continuing their own proprietary stuff.
No, they won’t do it, because they’re Microsoft, but it’s certainly not good news for us that they’re continuing to push DirectX rather than helping improve open standards.
You can do the same post replacing Microsoft by Apple (Quickdraw 3D), Commodore (Warp3D), Sony (Emotion Engine, LibCGM, GNM), …
And I’d have the same response for all of them. Having software be tied to a particular platform is bad for consumers and the software community in general. It leads to lock-in and stifles innovation.
Yes, it still happens, so it’s a continuing problem, but it’s something that we should strive to eliminate, not propagate.
In what way it stifles innovation? As andrewclunn points out just above, OpenGL is the one playing catch up trying to copy what DirectX pioneers.
Lock-in stifles innovation, because it removes the competition factor, since you end up with a monopoly. Fighting to get people locked in doesn’t stifle it, because you’re competing to get folks to come to your platform in the first place.
The core problem really is that using DirectX ties you to Windows, which almost inevitably leads to your software becoming Windows-specific in a lot of other ways. So, porting to something other than DirectX can be a pain, and you can’t distribute your software on other platforms.
Too often, the folks on the Linux side have similar issues, because Windows lacks a lot of stuff which exists on pretty much every *nix system on the planet (and thus almost everything other than Windows). So, it’s not just a Windows problem. But those issues can be (and sometimes are) fixed by porting various libraries to Windows, whereas Microsoft isn’t about to port DirectX to Linux or any other OS.
Yes, yes, but the actual evidence doesn’t support what you claim – DirectX innovates, OpenGL plays catch up to it, even when we now have plenty of healthy competition… (OpenGL on mobile phones and tablets)
Such as?
Same goes for DirectX
That’s indeed a major failing of OpenGL, but you have similar situations with DirectX when having to support the dot releases (which is usually how MS supports whatever ATI is doing).
Except for Xbox consoles do not use DirectX.
(PS4 and Wii U use some form of OpenGL in varying degrees of bastardization, but these Japanese companies have had traditionally horrendous development toolchains/systems compared to MS).
Which is why there are C++ wrappers…
Again, that could be an issue or a feature. There are some toolkits that take the pain away, and honestly if you know what you’re doing it’s not that hard to find the correct devel environment for OpenGL.
It all depends on what the context/situation is. If one is targetting the desktop, it makes sense to marry your fate to Windows since they control the majority of it. Whereas on the mobile/tablet side of things OpenGL dominates to the point of making DirectX almost irrelevant in that space.
One size does not seem to fit all, so each has their pros and cons.
From what I understand the WiiU toolchain was horrendous (maybe still is). The PS4 has a Clang based toolchain, which according to many, is very easy to use.
Edited 2014-03-21 23:06 UTC
thank god that SN systems compiler is no more
OpenGL has nothing to do with touch-input. OpenGL only handles graphics output, it does not handle input devices at all.
That’s SDL’s task, or DirectInput
Kochise
Not in any significant way, considering the other platform and language differences. Objective C for Apple, Java for Android, and .Net for Windows Phone.
Many developers doing 3D stuff are also likely to use something like Unity, which runs on pretty much everything, regardless of graphics API.
If produce games, you often just target C++ and OpenGL.
Mobile platforms with C++ and OpenGL support:
* iOS 3.x-7.x
* Android 1.x-4.x
* BlackBerry 10
* Sailfish OS
* and more…
Mobile platforms with C++, but no OpenGL support:
* Windows Phone 8
Microsoft is making it really easy for developers to ignore their platform for mobile game development (mind you that most small developers cannot afford platform agnostic toolkits).
Every time cross platform development gets discussed, developers tend to forget that C++ is common to all big three.
It is still a bastard son on Android, but the situation is slowly improving as sources\android\ndk_helper gets more classes each NDK release.
Even normal apps can benefit from it, by coding just the view in Objective-C, Java, C++/CX or embedding something like Webkit.
I talked with a Microsoft representative at GDC,
Windows * 8.1 supports runtime shader compilation,
so with Angle Project you can use ES 2.0 fine on Windows * 8.1
I do not get the problem. DX10 is still bad in terms of performance per clock cycle, 11 did add useless functions and lower fps. A really good coder can not make a good 3d fps game in dx7, 8 or 8.1 today as many codepages would be disallowed and code would not be portable. OGL can do everything and is open.