Search Unity

Last year at GDC Microsoft announced DirectX 12. During yesterday’s Windows 10 media briefing, Phil Spencer of Microsoft mentioned that Unity is going to add support for DirectX 12. Here are some more details we can share with you today!

Direct3D 12 is a new graphics API with the promise of reducing driver overhead and allowing better use of multi-core systems. In those aspects it is comparable to AMD’s Mantle and Apple’s Metal.

The architecture of Direct3D 12 differs greatly from that of Direct3D 11 both in the way memory is accessed and GPU commands are issued. Rather than having a single context on which to set states and issue draw calls, we can now build command lists on multiple threads and retain them over multiple frames if necessary, saving precious CPU cycles and eliminating the dreaded my-render-thread-does-most-of-the-work problem. This has the potential to both reduce total frame time and increase battery life.

3DMark have ported one of their benchmarks to DirectX 12 and reported a 50% improvement in CPU utilization. See this blog post for more details.

3DMark DirectX 12 gains

Tested on GIGABYTE BRIX Pro (Intel Core i7-4770R + Iris Pro Graphics 5200)

Intel have also demonstrated what can be done on a Surface Pro 3 with Intel HD4400 graphics. This blog post has all the details.

Intel DirectX 12 gains

Close up of another CPU/GPU power graph taken during a locked framerate Intel Asteroids demo showing over 50% CPU power usage reduction

Direct3D 12 is expected to run on all Microsoft devices: mobiles, laptops, desktops and Xbox One, all of which Unity already supports. It is only logical for us to adopt the new universal API. However a significant amount of work is required to reap all the benefits this architectural switch can provide and that is why we have started early. Over the past several months we have worked closely with Microsoft to bring Unity to DirectX 12 and our initial port is now passing over 95% of our graphics tests.

Passing all the tests is only the first step. Once we are happy with the implementation feature-wise we shall move on to the new features of Direct3D 12 and invest heavily in optimization. There is ongoing work to allow our renderer to better use multiple cores which will apply directly to Direct3D 12 and hopefully provide the promised performance improvement. Right now, it’s too early to discuss performance due to the alpha state of Windows 10 and DirectX 12 drivers, however we are happy with the numbers we’re seeing.

Both Nvidia and Intel have given us ample support, and we now have code running on both Nvidia and Intel hardware. All of our demos are behaving well on Direct3D 12. That makes us very confident that your games will too.

Currently our plan is to release DirectX 12 support early in the Unity 5 cycle (well in time for the release of Windows 10), and to target standalone builds and Windows Store Apps first. Then we’ll follow up with Windows Phone and Xbox One support, aligning with the plans Microsoft has for their platforms.

Keep checking our blog for more DirectX 12 news. We should have more announcements in the next few months. In the meantime you can find more general information on the subject on the Microsoft DirectX 12 blog.


Subscribe to comments

Comments are closed.

  1. my Making Designer Graphic for unity 5
    Street and drop water and Effect GlowWater and EffectCar WaterDrop
    unity5 with DirectX 11


  2. Will DirectX 12 improve GPU programming (DirectCompute) ?

  3. It seams magic ! Direct x 12 will make nothing my lack of skill to optimise my game lol ! But i can’t use dx11 cause there’s a big bug in the vsync mode…
    Hope they make this one usable for me and my 2.5D project..

    1. Aras Pranckevičius

      January 26, 2015 at 6:20 am

      A lot of DX11 fullscreen issues were fixed in 4.5 and 4.6… if you still have a problem, file a bug with details please!

  4. New graphics features are great but man, I wish some older features like Shuriken could get an update. Still no infinite particle lifetime, still no camera facing mesh particles…

  5. There is a lot of conflicting information on the web regarding the impact Dx12 will have on the Xbox One. We do know that the current API on the Xbox One is low level, however the core utilization for the CPU is probably not running at in an optimal setup. Can you comment on what Xbox One users can reasonably expect from the switch over to Dx12? Will it improve performance and by how much? Will it enable new features?


    1. Hello JT,

      It is still too early to comment on what DX12 impact will be on Xbox One.
      As you pointed out Unity for Xbox One already supports platform-specific extensions to DX11, which provide some reductions in overheads similar to DX12 and the performance improvement has been very good for games which were previously CPU bound (as much as a 3x boost. Not a typo).

  6. I hope you guys have Hololens support in the bag, too! I’m so ready to build some games with Unity for it…

    1. This absolutely must happen. Just gotten into unity development in a small way, and the HoloLens announcement has filled me with so much inspiration. I want to make something like Super Skidmarks for my living room table..

  7. Hi. Since windows phone name will be Windows10, when will you be working on DX12 for Windows 10(for Lumia devices)

  8. is there any equivalent to opengl that i missed? I’m all for improving directx but microsoft is doing it again with the whole push to their windows platform, last time opengl had most of the cool features prior to the release of directx 10 and 11 bound to their new OS, it feels like we are still scratching the surface because of it, this is slowing game rendering, isn’t unity trying to democratizing game development? i hope this doesn’t mean that linux, mac and non microsoft consoles users will be left in the cold again

    1. Aras Pranckevičius

      January 22, 2015 at 9:28 pm

      See the OpenGL related replies below.

  9. If I remember correctly, support for DX 11 came to Unity 2 years after DX 11 was released. Looks like you’re ahead of the curve this time around. So I guess that’s a good thing. Great news

    Just one question:
    What exactly have you guys been smoking? Cos whatever it is, it’s definitely working! :-P

    1. Be careful with expecting support to come to the HW you have now.

      For example this statement in this blog post:

      “Intel have also demonstrated what can be done on a Surface Pro 3 with Intel HD4400 graphics.”

      That matters not one whit if that’s not released to customers and afterwards supported with bug fixes.

      However, on another source plainly stated Intel stated, they will not be supporting Direct3D 12 on Intel GPUs not branded as Intel Iris. That claim excludes all Intel HD Graphics GPUs, even new ones combined with Haswell or Broadwell architectures, that aren’t branded ‘Iris’. Based on my experience with Intel I believe that claim.

      So if you had a Oct 2014 Mac Mini you wanted to install Windows 10 with Direct3D 12 on you’d need to mid or high model Mac Mini. The entry level model is not supported because the GPU is Intel HD 5100 and not the Intel Iris 5100 of the mid range MacMini.

  10. If your working with Microsoft, will we see the Spartan browser being able to support your webGL builds?

    1. Tomas Jakubauskas

      January 22, 2015 at 6:28 pm

      That is a question you want to ask Microsoft.

    2. Yes, WebGL will be supported in Spartan.

  11. I’m happy that you’re ahead with the latest techs..

  12. You mentioned Microsoft, Intel, and Unity were and are doing tests with Direct3D 12 on current HW. So when the API changes are finalized, will it be released as driver and SW changes only or is this phase of development and test only for development and the improvements of those participating will be committed to HW changes in GPU / CPU design by Intel /AMD / nVidia?

    1. Tomas Jakubauskas

      January 22, 2015 at 4:40 pm

      It will basically be a driver for Windows 10.

      DirectX 12 will be essentially supported on all Fermi and later Nvidia GPUs, on AMD’s GCN-based chips and on Intel’s Haswell and later processors’ graphics units (source:

      1. OK, thanks very much.

        So it will be 2 or 3 years before this architecture is available in sub $100 WinRT tablets but that and Unity 5 are making that something to look forward too.

  13. Sounds pretty cool. I would really love to see an improvement on the Mac, to at least support some kind of geometry shaders and maybe compute shaders.

    1. Aras Pranckevičius

      January 22, 2015 at 5:01 pm

      See my reply to Richard below – folks here are working on GL3/4 support. That said, currently none of the OS X’es support compute shaders in general (i.e. there’s no support for GL 4.3+ on OS X).

    2. Or.. you can get rid of that trash mac instead of crying and get a real pc with a real os.. :)

      1. I have a ”real” PC with a ”real” OS – it’s called OS X. Windows 8.1 is on that PC too, and I don’t like it as much. I’m sure there are a lot who thinks the opposite, though.

  14. Awesome! unity seems to have been locking into high gear with all this. new graphics tech, all the new systems(which are all amazing), better contact with the community, etc… keep up the awesome guys!

  15. I want one change in Unity Inspector approach. As we can change the values of public variables and see there effects during game play, which is a great feature btw. But when we change too many values and find one suitable one, and want to apply that permanently we can’t because these changes last only up till we are in running mode. There should be some prompt or button to apply these changes as well.

    1. Aras Pranckevičius

      January 22, 2015 at 12:24 pm

      That’s a great idea, but has nothing to do with DX12 ;) That said, editor team is looking into ways of saving changes done in play mode. Someday!

      1. Yes i know it has nothing to do with DirectX12. :) But i had to say my words somewhere.. :)

        1. Aras Pranckevičius

          January 22, 2015 at 3:17 pm

    2. If you’re only making changes to one component in Play mode, you can right click it’s title and pick “Copy Component,” then stop playing so it reverts, right click it again, and pick “Paste Component Values”

  16. Sounds great! While I’m working on Mac OS and cannot even test DirectX11 without booting into Bootcamp (and having to use up another activation), it’s great to see that you’re ahead of time this time … and it’s also quite nice that things are moving the same direction as in iOS/Metal on Windows.

    Will you also post about Drawcalls vs. “Batches” (this was changed in the stats of the Game View)? That’s something I’d love to read an official statement on with all the background of why Drawcalls maybe aren’t as useful for measuring performance impact as they maybe once were ;-)

  17. Richard Griffiths

    January 22, 2015 at 9:57 am

    Thanks for the post. I’m more interested in news on updated OpenGL support though. Anything on this yet for 5.x?

    1. Aras Pranckevičius

      January 22, 2015 at 10:00 am

      Yes, people here are working on OpenGL 3/4 and OpenGL ES 3.1 stuffs too! See this talk from Unite 2014

      1. Richard Griffiths

        January 22, 2015 at 10:01 am

        Excellent. Thanks for the link! =)