Microsoft partners with Unity Tech and Epic Games to bridge the gap between advanced algorithms and ease of use for developers

At its Windows 10 event on Wednesday one of the highlights was Microsoft Corp.'s (MSFT) upcoming DirectX 12 API, which will launch with Windows 10 this fall.  At the event Microsoft both demoed DirectX 12 and confirmed some heavy hitting crossplatform support.  Let's take a look at what was announced and what lies ahead.

I. Buzzworthy

Currently Windows 8.1 is equipped with DirectX 11.2. Coming next will be not one, but two releases.  The first, DirectX 12 (DX12), targets low-level/high-performance code.  Think game engine development.  In many ways it's similar to vendor-specific efforts like Advanced Micro Devices, Inc.'s (AMD) Mantle API.  The goal of all of these efforts is often summarized as getting the developer "closer to the metal".

The second release will be DirectX 11.3 (DX11.3), which will feature more approachable APIs for independent developers.  It will feature a paired down set of DX12-like features, but won't pack quite the raw firepower of DX12.  Both APIs will reportedly operate side by side, giving developers flexibility along with a degree of commonality.

Here's Microsoft's new Xbox chief Phil Spencer talking about DX12 at yesterday's press event:

On the surface what he's saying sounds simple.  In benchmarks by Intel Corp. (INTC) (shown running on a Microsoft Surface Pro 3 w/ Intel HD 4400 graphics; previously shown at IDF 2014) and by Futuremark it was shown that at constant framerates DX12 will reduce active power consumption by up to 50 percent, primarily by cutting down on CPU power usage via smarter algorithms.

FutureMark -- 3DMark Cityscape Demo -- 2.03x the framerate


Intel -- Asteroids Demo (@ constant framerate)
DX12 @ constant power
Alternatively, at constant TDP, you should be able to get a 50 percent or more increase in framerate (frames per second), as additional power can be diverted to the GPU shader cores to run them at a higher framerate, assuming thermals allow that.

Intel -- Asteroids Demo (@ constant power)
DX12 @ constant power

So from a high level view there's tremendous promise and potential for gaming.  I would certainly expect DX12 alone will turn some Windows 8 skeptics in the enthusiast market into Windows 10 believers, in spite of the vestiges of the "Modern UI" (Metro) style that remain in Windows 10.

II. Third Party Engines -- Bridging the Gap

That said, there is a bit of a challenge.  Fully leveraging DX12 to achieve the kinds of gains teased at gets very technical very fast; too time-consuming and convoluted for most game devs even.

To bridge the gap between press buzz and product Microsoft needs partners to build up dev tools (game engines) based on DX12.  With such tools in place it should be able to delivers its promised benefits and distill an incredibly complex set of algorithms into a simple form that everyday devs/indie devs will find usable.  Microsoft's partners in this project include: The Epic Games/Unreal Engine tie-in is less of a surprise.  Microsoft enjoys a long-standing and close relationship with Epic Games, as illustrated by Microsoft Studios' recent purchase of the Gears of War franchise from Epic.

Unity + DX12 +Unreal Engine

Bloggers seemed to react to news of Unity Tech.'s support with more surprise.  Neowin, for example, comments:

With DirectX 12, the biggest surprise is cross-platform gaming. Spencer announced that Unity has adopted the new API, and games such as Fable Legends will allow people on PC and Xbox One to play together. He also revealed that Unreal Engine will also support the new standard in upcoming games.

But wait... Unity3D already is supported on Windows/Xbox with Direct3D (the 3D bits of the DirectX API).  And Unreal Engine 4?  You guessed it; it supports DirectX 11.  So this isn't exactly earth-shattering.

III. DX12 for Android and iOS?  It Could Happen

There is a more interesting lurking question or rumor to consider -- true cross-platform support.  

Consider -- Microsoft's Satya Nadella has expressed a desire to both support Windows and move beyond it.  Making good on this principle Microsoft has stepped up its Office efforts for Apple Inc.'s (AAPL) OS X and iOS -- and even Google Inc.'s (GOOG) Linux distribution, Android.  Nadella & comp. have hinted at broader Linux support coming soon.

Could DX12 support come to iOS, OS X, Android, and Chrome OS?  

DX12 true cross platform

It sounds unlikely, but Microsoft already has a relatively close relationship with Apple whom it shares an intellectual property cross-licensing agreement with.  And Google prides itself on "openness" so it certainly might be pressured to let DX12 onboard should Microsoft make the offer.

Whether or not that more exotic possibility comes to fruition Microsoft already has had DX12 out in the wild testing for nearly four months now.  A very early build of the upcoming API launched for special "Early Access" enrollees.  Made available on Oct. 1, alongside the first public preview of Windows 10, that developer-aimed firmware preview came with Unreal Engine 4.4 code hosted on Github.

DX12 UE4.4

Most Windows 10 public testers do not have access to this build currently.  By default Windows 10 Public Preview builds to date have featured DX11.2.  My guess would be that we might see DX12 see a wider rollout to testers at the BUILD 2015 event near the end of April.

IV. What's Under the Hood

Okay, so I still haven't said what magic DX12 uses to cut CPU power usage (at constant framerate) so dramatic.  Here's a few of its tricks:


(Note: Click any image/slide to enlarge.)
  • Pixel Blending

    Tasks such as anti-aliasing (AA) and order independent transparency (OIT) (via ordering the shader assignment of geometry rendering in a technique called rasterizer order viewing (ROV), an alternative to unorder access views (UAVs)) will be performed faster and will consume less power as the CPU will not be required to perform calculations to sort out the order for shaders to combine in their rendered results.

  • Multithread UAV Memory Access

    If you don't need to use the ROV, you can use the traditional UAV.  It's been tweaked so that multiple threads can now share its resources, allowing programmable blending.

    DX12 UAV Load

  • Volume Tiled Resources (VTR)

    Voxels are a hot item in game programming today, by allowing for advanced lighting.  Specifically, voxels allow a game developer to supplement direct lighting with computationally cheap reflective lighting.  Traditionally reflective lighting required expensive ray tracing.  Voxels get around this by assigning volumes in the scene an opacity value, which in effect turns them into weak lights.

    DX12 tiling

    API support is needed to handle the sparse nature of the voxel framework for a scene.  In Microsoft example a 1200x600x600 pixel (w/ 32 bits of opacity per pixel) atrium room was decomposed into 32x32x16 pixel voxels (also w/ 32 bit levels per pixel).  That's just over 23,350 voxels.  Of those only approximately 2,500 -- roughly 10 percent -- will be non-zero/filled.  At that low a density the hardware-accelerated sparse allocation is vital.

    The technology can also be used to reduce memory in so-called "megatextures" -- sparse textural overlays (e.g. a cracking pattern in dirt) which are repeated, but have large empty regions.

  • Conservative Rasterization (CR)

    Rather than test the center of pixels for polygon overlap, the CR tests the corners.  This catches shapes that just brush against a pixel, allowing for more accurate voxel and graphical processing at a low cost.

    DX12 -- Conservative Rasterization

    This is similar to the various other multisampling techniques employed by AMD and NVIDIA Corp. (NVDA) in their latest GPUs.  The same tests can also be used for collision detection.

V. Final Thoughts

That's the key features behind DX12, in addition to refinements of the existing techniques.  It may not sound like much, but these new hardware-accelertion algorithms promise significant cuts to power use, more accurate graphical rendering, and better lighting techniques.

How many of these features will show up in DX11.3?  And how will their performance differ?  Those questions remain largely unanswered.

Windows 10 cross platform
One family -- all powered by DX12. [Image Source: Microsoft]

It also will be interesting to watch whether Microsoft pares down the API when it comes to Windows 10 on mobile devices.  We may know the answer to that shortly, as Microsoft said that it would launch next month a smartphone preview of the upcoming OS.  Presumably that's when insiders will get their first taste of how Microsoft plans to squeeze DX12 into the mobile space.

Sources: Microsoft on YouTube, Unity3D, Microsoft MSDN Blog [UE4.4 Preview]

"I'm an Internet expert too. It's all right to wire the industrial zone only, but there are many problems if other regions of the North are wired." -- North Korean Supreme Commander Kim Jong-il

Most Popular Articles

Copyright 2018 DailyTech LLC. - RSS Feed | Advertise | About Us | Ethics | FAQ | Terms, Conditions & Privacy Information | Kristopher Kubicki