(Not) The End of DirectX

Subject: Editorial, General Tech, Graphics Cards, Systems, Mobile | April 7, 2013 - 10:21 PM |
Tagged: DirectX, DirectX 12

Microsoft DirectX is a series of interfaces for programmers to utilize typically when designing gaming or entertainment applications. Over time it became synonymous with Direct3D, the portion which mostly handles graphics processing by offloading those tasks to the video card. At one point, DirectX even handled networking through DirectPlay although that has been handled by Games for Windows Live or other APIs since Vista.

AMD Corporate Vice President Roy Taylor was recently interviewed by the German press, "c't magazin". When asked about the future of "Never Settle" bundles, Taylor claimed that games such as Crysis 3 and Bioshock: Infinite keep their consumers happy and also keep the industry innovating.

View Full Size

Keep in mind, the article was translated from German so I might not be entirely accurate with my understanding of his argument.

In a slight tangent, he discussed how new versions of DirectX tends to spur demand for new graphics processors with more processing power and more RAM. He has not heard anything about DirectX 12 and, in fact, he does not believe there will be one. As such, he is turning to bundled games to keep the industry moving forward.

Neowin, upon seeing this interview, reached out to Microsoft who committed to future "innovation with DirectX".

This exchange has obviously sparked a lot of... polarized... online discussion. One claimed that Microsoft is abandoning the PC to gain a foothold in the mobile market which it has practically zero share of. That is why they are dropping DirectX.

Unfortunately this does not make sense: DirectX would be one of the main advantages which Microsoft has in the mobile market. Mobile devices have access to fairly decent GPUs which can use DirectX to draw web pages and applications much smoother and much more power efficiently than their CPU counterparts. If anything, DirectX would be increased in relevance if Microsoft was blindly making a play for mobile.

The major threat to DirectX is still quite off in the horizon. At some point we might begin to see C++Amp or OpenCL nibble away at what DirectX does best: offload highly-parallel tasks to specialized processing units.

Still, releases such as DirectX 11.1 are quite focused on back-end tweaks and adjustments. What do you think a DirectX 12 API would even do, that would not already be possible with DirectX 11?

Source: c't magazin
April 7, 2013 | 11:50 PM - Posted by ET3D (not verified)

There was discussion about this when Microsoft announced the end of the DirectX/XNA MVP rewards. From what I read at that point the development direction Microsoft is taking at this moment is to integrate DirectX into Visual Studio, to provide a more complete development and debugging environment for GPU based applications.

I think that's a good way to take development. Microsoft hasn't had good tools for this, instead relying on graphics card vendors in this area.

I also think that C++Amp is the way forward. Games are moving towards doing effects in such programmable code, and the GPU industry is moving towards better integration of GPU and CPU (even when they are discrete). DirectX versions are mostly about adding new fixed functionality, so if programmable functionality is getting good enough for general use, it may be better to focus on that.

April 8, 2013 | 02:21 AM - Posted by Eagledown (not verified)

I really wish more games used OpenGL instead of Directx. I'm waiting for the day directx does die.

April 8, 2013 | 02:38 AM - Posted by Anonymous (not verified)

It seems like the author of this article doesn't understand DirectX. DirectX and OpenCL are almost nothing alike. If one was to look for a competitor, OpenGL actually has a much more entrenched position in mobile due to the existence of OpenGL ES. Microsoft hasn't begun to innovate in this space as of yet, and most mobile hardware already well supports OpenGL.

April 8, 2013 | 01:27 PM - Posted by Scott Michaud

You can develop a renderer in "entirely" OpenCL. (You might want to use OpenGL to physically draw the buffer to the screen... but OpenGL would do nothing to the buffer unless you want it to).

C++AMP too.

Epic Games has been talking about the desire to switch to GPU-accelerated software renderers for a decade now. The biggest problem, especially for companies like Epic, is that DirectX and OpenGL are loaded with quirks they just need to live with. Example: In order to (properly) antialias when using UnrealEngine 3 (64-bit HDR), you needed to wait until GDC 2011 when Epic announced DirectX 11 support. It was simply impossible because DirectX 9 did not let you apply antialiasing at the correct stage. Until DirectX11? Deal with it.

Here's an example for the original Bioshock. You could "force" AA -- but it would be wrong. Look where the red arrows are: in places of high differences in light intensity: jaggies appeared. On the same polygon it antialiases correctly near the top and bottom because they intensities were roughly equal. This was a DirectX bug -- Epic, their licensees, and so forth, just had to deal with it.

http://img.photobucket.com/albums/v342/Phopojijo/bioshockaa.jpg

With OpenCL, DirectCompute, or C++AMP: all the code was written by them, they can fix it because they were the ones who broke it. No tripping over a Microsoft or Khronos limit.

Again, it is possible to write a rendering engine entirely for the CPU and there are many benefits to it. The main disadvantage is that you cannot access the GPU for the massively parallel bits (typically "loop through every pixel"; "loop through every vertex"; or occasionally "loop through every object" stuff). Now we can. Once it gets roughly to the same performance as DirectX or OpenGL -- why abstract?

So yes, I do understand the difference. Lol.

April 8, 2013 | 05:06 AM - Posted by Herwig HÖFLE (not verified)

I've read the article as a native german speaking reader (my english is far away from perfect though). Roy Taylor sais quite frankly: "There is no DirectX 12 to come. That's it. As far as we know there are no plans for DirectX 12." I litterally translated that from c't. What he doesn't say is the fact that (imho) there's technically no need for a DirectX 12 - at least at the moment. So they' re missing the momentum usually following such a release. Gaming and hardware industry has to create this momentum by themselves. And Roy Taylor sees enough possibilities to do so. For them (AMD) "...TressFX is just a start of things they will do together with games developpers to make PC-gaming more exciting."

April 8, 2013 | 01:29 PM - Posted by Scott Michaud

Cool, thanks for the confirmation.

April 8, 2013 | 05:58 PM - Posted by Anonymous (not verified)

I will be Glad when openCl and openGL will reach a point that when I am using Blender in 3d edit mode, that the CPU can also be used to help me deal with the high polygon 3d meshes, that are now only processed through the GPU in 3d modeling mode! And when I need to do a 3d render of the mesh that both the GPU nad the cpu can both be used at the same time , as of now my rendering only takes place on the CPU, there does appear to be the beginnings of support for this with the cycles renderer! More development needs to be done with driver software, so that all the CPU or GPU processing resources can be used for any graphics or computute tasks at the same time!

April 9, 2013 | 06:43 AM - Posted by kukreknecmi (not verified)

Dx11 multi-thread and Direct Compute seems fine for now. If i know right, everyone will be elevating the advantages of DC in conjuction with dx / draw funtions. So actually if developer needs a funtion that isnt / viable in dx, they can implement it via DC(like BF3 etc).

So unless the new DX will bring more efficient way of functions that exists, i guess noone will be in need for it. I have no idea for now, why a new dx is needed.

And unless building a function in DC brings much overhead (or new DX will have much efficient way to do), i dont think there will be need for it.

Use of Compute Shader is getting more and more important. Also the performance of context switching too. So developers will pay more attenction to contect switching perf / penalty too (as hw and sw). I believe the 8x8 ACE:CS structure in PS4 GPU is deeply related to this too.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote><p><br>
  • Web page addresses and e-mail addresses turn into links automatically.

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.