DirectX 12 On PC And Xbox One: Improving GPU Efficiency, Reduced CPU Overhead And More Analyzed

DirectX 12 allows developers to have more control on how they manage their resources, but this also means that they have to do a lot of work upfront.

Posted By | On 11th, Mar. 2015 Under Article, Graphics Analysis | Follow This Author @GamingBoltTweet


Last week we covered the new rendering features found in DirectX 12 along with performance comparisons between DX11 and DX12. Today we will focus on how DirectX 12 allows developers to efficiently utilize GPUs and reduce CPU overhead for better performance. During this year’s GDC, Microsoft’s Bennett Sorbo took centre stage to explain how DirectX 12 is not only a low level access API for a variety of GPU hardware but it also has a very low level of abstraction compared to DX11. Not only that, it also manages to take care of resource management issues such as the order they are going to be used in and how they are going to be used in rendering operations which results into awesome performance gains on the CPU and GPU.

Explicit Resource Transitions

directx 12 xbox one pc 2

So how can developers gain more from GPU using DirectX 12? Bennett states there are three ways to do that. First approach is called Explicit Resource Transitions. It’s fairly public knowledge that modern GPUs work with resources in the form of states and using these states they have knowledge of where these transitions or instructions needs to occur in the pipeline. For example, if you want to read a texture from a render target, some GPUs will actually compress it and save bandwidth in the process, but if it’s the opposite, it needs to be decompressed into a different hardware state so that other parts of the GPU can read it efficiently. Another important thing that developers need to keep track of is the transitions of resources and make sure that they are in sync with each other.

In DirectX 12, there is actually an in-built application that will notify the GPU about the current state of the resource. For example, the app will tell the GPU that the current state was a render target but now it’s now being used as a shader resource. This lets the developer know when they are asking the GPU to do the work or move from one state to another. Of course this may be happening in DX11 but in an abstract way. This way the developer can minimize the number of redundant state transitions resulting into less unexpected stalls and performance loss.

directx 12 xbox one pc 5

In DX11, whenever a developer wanted to a dispatch call back to back, the API will ensure that all reads and writes will be complete for a given call resulting into some idle time before the next dispatch event happens. Using DirectX 12, the developer is now responsible for telling the app when these idle times are needed. So if your app does not need any stall times, the dispatches can run back to back. What’s more? Multiple dispatches up to hundreds on a modern GPU can be run in parallel followed by idle time (if any).

In order to demonstrate this new feature, check out a head to head comparison between DX11 and DX 12 versions of Fable Legends.

directx 12 xbox one pc 3

Fable Legends DX11 version: The application does not have upper level knowledge resulting into lower frame rates compared to the DX12 version below.

directx 12 xbox one pc 4

Fable Legends DX12 version: The application has upper level knowledge resulting into higher frame rates due to less GPU idle times/stall.

In our previous article, we briefly talked about ResourceBarrier API that takes care of the GPU hazards. So using this API, the developer can communicate with the GPU about the different states that we talked about earlier in this article. Now consider an example where you want to read a render target for a number of frames. So using DirectX 12, developers can perform these transitions over a long period of time using ResourceBarrier API with the begin and end states with both of them having their individual before and after states. In this way redundant operations are avoided and is ideal for processes where a resource is not going to be used for a long period of time.

Parallel GPU Execution:

directx 12 xbox one pc 7

Modern GPUs are completely capable of running multiple workloads provided they are not dependent on each other, allowing developers to use the hardware efficiently. In the previous article we briefly touched upon the three engine types which are 3D (which can do whatever operations you want to using DX11 context), compute engine (which can clear queues and perform dispatches) and lastly copy which is used for copy operations. All of these engine types can be used in parallel provided the application has the upper level knowledge what resource the developer is going to use ahead of time.

The copy engine can be used in scenarios where the developer knows that in a few seconds the app will be accessing a particular texture. The copy engine will then stream copies of the texturing using system memory or the GPU memory without blocking the 3D engine. For comparison sake, Bennett showed off the results on the GPU View, a tool that tracks what is happening on the GPU at any moment.

In the image below, the copy and compute operation would normally take more time, in this case 92 milliseconds.

directx 12 xbox one pc 8

But when the developer uses the copy engine, the hardware is actually executing several command buffers in parallel, avoiding serialization. The 3D work is only 41 ms and the copy work is only 27, and that too parallely.

directx 12 xbox one pc 9

Moving forward. The compute engine is widely used in games, offering unique rendering solutions. If you are doing a long running simulation and if the app needs lesser frames, the GPU can run it on a lower priority by allocating it lesser cycles. But when the developer needs the resource, the 3D queues can be delayed. It can also be used in cases where there are dependencies between the compute and 3D engines for a smaller frame time. For example, if the compute engine is running a bit longer, the developer can actually tell the 3D engine to wait. But again, this depends on what you are doing in the application.

GPU Generated Workloads:

directx 12 xbox one pc 10

Microsoft have added a lot of new features so that the API is extremely flexible while it’s processing rendering operations. In DX11 each query was treated as independent entity using the ID3D11Asynchronous class allowing the developers to get the data whenever they want. In DirectX 12, the developer retrieves the data in the form of heaps. So one can carry out thousands of queries in a single batch and they can be executed using a single resolve operation. In this way, the GPU does not need to worry about resolving individual GPU operations as it only needs to take care of a batch or a heap now.

CPU Overhead:

One of the first features that was first announced last year was that DX12 reduces CPU overhead by 50%. This is especially critical in cases where a user has a dual GPU configuration and the CPU becomes the eventual bottleneck. Out of the box, DirectX 12 allows no high frequency ref counting, no hazard tracking and and no state shadowing. This means that the API will now manage the lifetime of the resource in the memory. When the developer wants to release it, it will be immediately released. If the developer chooses to bind something as render target, DX12 won’t unbind it unnecessarily compared to the dynamic runtime process in DX11.

CPU overhead can be reduced using Resource Binding, something I have explained in my previous article on DX12. Resource Binding is divided into two processes Descriptor Heap and Root Signature. The descriptor heaps are the actual GPU memory that controls how resources are bind in the pipeline. Unlike DX12, the descriptor heaps are directly exposed to the application itself allowing developers to bind individual resources in an efficient way because the application has a higher level knowledge on how it plans to use its resources. Root Signature is related to the draw function’s arguments which will allow the developers to put the texture bindings in the root signature function itself giving direct access to the relevant resource in the descriptor heap. This is ideal for high frequency updates.

In case of multi threading, DX11 creates a background thread which falls outside the control of the application but in DX12, multi threading is directly controlled by the application itself and each command list is independent and efficient in generating rendering commands. In cases where the developer cannot implement parallelization and has to adopt serialization, DX12 allows the developer to develop a background submission thread depending on the application’s needs.

DX12 also provides new developer tools such as fences which gives an indication on how far the GPU is in execution as well as the ability to develop one large allocation and place resources within it which can then be mapped/unmapped according to the application.

Closing Words:

Using DirectX 12, the developers will have the final word on where and how they want to utilize their resources but eventually they would need to do a lot of work in providing high level information to the application. But there is no doubt that there are some serious performance gains to be had via DirectX 12, at least on the PC.


Awesome Stuff that you might be interested in

  • TheWayItsMeantToBePlayed

    Interesting implications for PC games. Thanks

    In before ignorant PS4 and Xbone fans spewing feces yet again. Both your consoles are underpowered. Please stop thinking you have any sort of technological superiority to each other when last gen games are struggling to run 30FPS at low settings on your boxes. Both sides. 8GB GDDR5 is rather garbage, really.

    • SickFish

      And yet most unique exclusives come on consoles and pc gamers typically get sloppy seconds that dont even fully utilize your overpriced gpu. What’s garbage is your arrogance and your false sense of superiority because you spent hundreds of dollars more on hardware just to get higher resolutions and framerates on console ports. So how about you stick your gtx 970 up your a$@ and go play another MOBA.

    • TheWayItsMeantToBePlayed

      The only reason you buy consoles is for exclusives. If they had none, they would be not worth buying.

      Ponder on it.

    • Deitrich Houston

      Yes they would. The majority ate consoles, Pc gamers are the minority. Ease of use, low maintenance, plug n play, dependability. What’s to hate about consoles. If we all cared about 120fps and 4k gaming, I think the majority of us would have PC’s.

    • Hellfire

      PC has 700million players…. majority? Majority? MAJORITY? Are you insane or just woefully misinformed? Plus you don’t get 120fps with 4k, it’s 60Hz monitors at the moment and 144Hz monitors with 1440p. Peasantry is strong with this one. Keep on defending your $400 30fps cinematic potatoes.. I play on console too but am under no delusions.

    • Nathan O

      And yet ever multiplatform game released, the console versions drastically outsell the PC version

    • Hellfire
    • Nathan O

      this is possible the most narrow minded response I’ve come across. Of course revenue is up for PC gaming, there are literally 1 million more titles available and another 100 released everyday. Go compare any AAA blockbuster title’s sales released on PC and console. Console sales always trump PC sales, often 3 to 1.

      And there is no salt here, I’ve got a great PC and do a ton of PC gaming but the facts are the facts

    • Hellfire

      So you use multiplatform games selling higher on consoles to refute the fact that PC gamers are in the vast majority, to which I respond showing PC is bigger even in game sales, then you come back with the same argument… and I’m the one who’s narrow minded, really? Your beating the same irrelevant drum buddy, whats your great PC specs btw?

    • KeplerNoMore

      Lol wut? 700 million PLAYERS? 700 million PCs sold, most are office desktops that cant run solitaire because the boss is paying you to work not play.

    • Hellfire

      No that number runs into the billions, I’ll just leave this here to prove how much of a moron you are, unfortunately idiots tend not to take evidence too well:

      http://www.pcgamer.com/there-are-711-million-pc-gamers-in-the-world-today-says-intel/

    • TheWayItsMeantToBePlayed

      Let me see

      Paid online
      Low settings
      30FPS
      Lack of customization
      Designed to gouge you out of money
      Broken Operating systems
      Missing features
      Abandoning features like backwards compatibility to re-sell you games

      Quite a lot to hate, actually.

      Meanwhile, on PC…

    • KeplerNoMore

      And the lowest playerbase around. Most people play online and like the idea of ending against more than just 10 people. The top most played games on steam are F2P. The best top PC games are either League or Dota, or World of Warcraft.
      Im not saying consoles or pc are better but you guys take this steam zealotry way to far.
      The fact is Consoles sell more AAA titles and have the best online communities, deal with it. Only 10% of pc gamers actualy enjoy mods, most just finish a game and be done with it.

    • Daniel Lawson

      I hate steam… if they didn’t have stupid crazy sales I’d only buy from GoG

    • Michael Norris

      I don’t like the fact my games are tied to steam so your Pc freedom is a ruse my friend.It’s just like Psn/XBL the games you buy off of steam can’t be played unless you are logged in.

    • Thad Vanity

      LMFAO. PC Gamers are the minority?

      There are 27 million individual daily players on League of Legends alone.

      So to put that in perspective: There are more people playing A SINGLE PC GAME daily than the entirety of the XBONE/PS4 User Base combined.
      (Leagues monthly player base is 67 million BTW)

      Hmmmmmm…….Please, continue!
      Or better yet…..Get some facts or STFU!

    • CraZed77

      That seems like a pretty big reason to me. But hey doesn’t matter since I game on PC and console so I win no matter what. Yay for me and for not being an elitist douchebag.

    • Thad Vanity

      There’s a difference between being an elitist douche bag and a purveyor of painful truths….

    • Michael Norris

      You act like Pc has no weakness,you forget the fact that the typical person has no real clue to use a Pc to the extent you or i use them.

    • TheWayItsMeantToBePlayed

      I was preparing a serious response then remembered you are simply Sony PR doing it for free.

    • Five5x

      If the pc community wasn’t filled with nerdy virgin losers, would you be playing pc?

    • Guest

      The only ignorant ones are the Sony PS Poor people. I’ve not once seen an Xbox One fan claim that it’s as powerful as a PC, but on the Sony side it’s all “give me 1080p, 60fps or give me death” BS. They’re the true losers of civilization, falling for an overhyped brick from a lying and dying company.

    • kreator

      Very true!

    • ImOnaDrugCalledSheen

      You seem really mad and upset, only a true loser such as yourself would go to the extent you do to vent about something that doesn’t effect you personally, grow up and get a life.

    • kreator

      Lol

    • DLConspiracy//

      Your hypocrisy amuses me.

    • TheWayItsMeantToBePlayed

      You seem especially upset that your console completely fails to deliver the experience marketed at the start of the generation and astroturf fiercely for it instead of admitting it

      Never mind the really upset Sony fanboy desperately upvoting you with empty accounts. Someone needs pharmaceutical aids

    • Lionheart

      Lionheart trying too hard again with his guest vote spam.

    • TheWayItsMeantToBePlayed

      You seem really upset for an astroturfer along with his empty account vote spam macros. Do you need help? There are pharmaceutical aids that can help you with your insecurity.

    • Michael Norris

      You know why? most of the games run at 900p or less.

    • TheWayItsMeantToBePlayed

      The irony of a Sony astroturfer yelling 1080P but the games are on low settings and 30FPS.

    • Five5x

      #PCmastervirginrace

  • YOUDIEMOFO

    Good stuff!…!

    Just sad to see that people have to succumb to such low standing morals in order for themselves to feel better!

  • Psionicinversion

    extra 14fps the master race lives on PS4 sucks, f’ck you phonies omg DX12 does nothing… proven wrong time and time again

    • Thad Vanity

      Whats the average FPS say?

      WOW 0.8 FPS Improvement! BRIXWERSHYT!

  • Illusive Man

    We need to see benchmarks for X1. I think it’s ludicrous to believe dx12 has no impact on X1 though.

    • Demetrius Radford

      it has an impact wether its major or not the devs are gonna like it becuse it makes the porting process even easier from pc to xbox one

  • Failz

    Oh damn another promising article for PC and Xbox systems.. incoming PS fans to down play it.
    But but but Phil Spencer said it wont change the Hardware. .

    • Jecht_Sin

      “One of the first features that was first announced last year was that DX12 reduces CPU overhead by 50%. This is especially critical in cases where a user has a dual GPU configuration and the CPU becomes the eventual bottleneck.”

      The Xbone has half a GPU. Nothing to see here, move along. ^_^

    • Psionicinversion

      Jecht your full of fail. The 50% for PC is because DX11 sucks on our CPU thats where the 50% comes from… multiGPU will get 100% improvement… dont believe me go read what happened when nvidia introduced its CPU optimised drivers just for DX11

      Xbox will get more like 10-20% CPU improvement because the CPU doesnt need to work as hard as even Xbox low level DX11 low level API is inefficient at how it creates stuff to be sent to the GPU for processing and DX11 will still suffer from the same problem it WILL NOT BE FULLY MULTITHREADED, and even if it was even load the max it would use is 4 cores, both consoles have 8 cores and ive seen a task mananger with DX12 working on 16 threads and probably work on more so 8 core jaguar is covered….

      What that translates to in actual game performance we dont know yet but i do think MS is putting them exclusives on PC because they know the X1 isa bit underpowered and relying on PC to show the games they make true muscle…

      oh and ive played 4.5 hours of The Order so far and i believe its not that hard to render. All the textures just have alot of love put in them so instead of game devs doing half a job theyve put in tons of time and effort. Doesnt mean it needs a titan to render…

      oh btw The Life of Pi when the whale jumps out the sea… they have real time rendered that on titan Z 1 core for processing 1 core for the physx, that is realistic and the order although pretty good comes no where near

    • Thad Vanity

      Show us where they rendered the actual whale scene from Life of Pi on a single GPU in real-time using the same assets and rendering techniques as used in the movie…..

    • kreator

      Ahhh the PS4 trolls just can’t help themselves but to come on here and say DX12 will do nothing for Xone. Most can’t even spell correctly much less know anything about coding. And their manhood is somehow challenged if the Xbox gets a little better. God when they see Fable, Crackdown, Scalebound and H5 using DX12 and Cloud they are going to be Sooooo mad.

    • TheWayItsMeantToBePlayed

      So what does that make the PS4. 2/3rds of a GPU? It’s still pretty pathetic and was behind the generation in 2010.

      But then I said console astroturfers were going to throw feeces and low and behold it happened. Same upset Sony fanboy upvoting people doing damage control as well. This really is a pathetic console generation.

      By the way from your post, you have no clue what a SLI config is or how it interfaces with a CPU. So ignorant and a Sony PR shill. Even more reason to laugh at you, really

  • Truthhurts24

    DX12 is amazing and will give X1 the improvements it needs no matter how little.

  • GHz

    @talreyami @AMDRadeon There is a time and a place for everything….— DirectX 12 (@DirectX12) March 5, 2015

    Then…

    @Blight7 Oh, we know. :)— DirectX 12 (@DirectX12) March 11, 2015

    If the idea behind DX12 is to get PC development on console level, which console are they speaking about? Which device is trying to be like the other device in how the form factor interacts with APIs? Which device was built with DX12 in mind? Which device needs new hardware to take full advantage of DX12? And if the device that was built with DX12 in mind already have the hardware necessary to fully exploit all of DX12’s features, what does that say about the hardware of said device?

    @Nicodemus9 DX12 will have impact on XBOX One games written for DX12. Some DX12 features are already in XBOX One but full DX12 coming.— Phil Spencer (@XboxP3) March 21, 2014

    @ExploderMouse We knew what DX12 was doing when we built Xbox One.— Phil Spencer (@XboxP3) January 23, 2015

    Then…

    @JoeNealZecca Stay tuned for GDC.— Phil Spencer (@XboxP3) March 9, 2014

    This question was answered when they demoed the Fable Legends game. Res jumped from 900p to 1080p. We knew they weren’t talking about PC because PC can easily handle 1080p. XB1 can too but as we all know, its all about development approach pre DX12. DX12 simply makes things easier, as it is XB1’s true API.

    • kreator

      You just hit all the PS4RONS with a critical!

    • Thad Vanity

      Yeah. Now Xbox can do full 1080p! Take that PS4….With your full 1080p……wait

    • YOUDIEMOFO

      Yeah baby!! 1080p in the house!!! Yeah I’ll stick to supporting those rare exclusives on the console and put the bulk of money where it will be best suited……on the PC!

      With a critical…….? Living in a video game? I’ve been enjoying my superior games on a far more superior experience/platform at far superior levels of fidelity and will continue to do so. People can keep clutching their little blankies looking/reading about that next hopeful bump in performance to help their locked out experience feel a little better here and there.

      I get it……. Most people need justification in life even if it is on their own decisive standings.

  • Mark

    Thx Bill. Cannot wait to see Gears 4 at this E3 or next….

  • ImOnaDrugCalledSheen

    Xbone sucks and this wont help it.

    • DLConspiracy//

      Yeah but so does your attitude. So…

    • TheWayItsMeantToBePlayed

      Both consoles are terrible. You are deluded and your post history shows you are just a Sony PR shill doing it for free.

      What did I say about ignorant Console shills at the start of the thread?

  • Illusive Man

    Not sure if you people have been paying attention but MIcrosoft basically indicated that there road map sooner or later will merge Xbox/Windows 10….making this phony console war useless. One unified store, Xnox on PC, Xbox in the living room, Xbox wherever you want it.

    PLaystation on a console.

    • Thad Vanity

      Xbox for Windows 10 will be a joke; just as Games for Windows Live was.

      PCs = Steam, Steam = PCs.
      Microsoft gave up their right to the PC gaming market years ago…..

      Only existing Xbox users will see any benefit/use from Xbox on Windows.

    • YOUDIEMOFO

      So Sony having remote play and capabilities to use it over android devices on top of having a streaming service up and “actually” running means what for Sony?!

      This is an attempt to catch up for Microlo$t. What have they done with an actual physical presentation………….?! Everything since launch for them has been (what seems like) shooting from the hip and checking that shot group to attempt to make corrections. Both systems have their obvious limitations, but honestly Sony has actually delivered more of what they have said they would. No one can say differently. Still am reading about what Microlo$t is going to be doing.

      I’ll buy a XbOne when it finally delivers on the promises of the cloud experience. As I’m still dreaming about the 10X’s the power of one in the cloud!! If I recall that got gimped to a “theoretical” 3X’s the power of one Bone, but hey we will see right…..?

      And all of those “cross platform” games can get their gimp on due to the limitations of a console, so here’s hopes to the PC being the standard on the developmental side of things. Not to mention microlo$t better get ready to fork over an insurmountable amount of money for them “future exclusives” because no one is going to willingly set themselves up for a locked out sales approach on a system with a smaller install base……

      Exclusives will (for the most part) be gone after this console generation…… As will consoles. At least no consoles in the past usual sense that is. Mobile gaming/streaming with unparalleled fidelity.

    • Nathan O

      your quotes are all over the place. 10x the power of the the 360 in every XB1 (no cloud required) is what was said originally. And the other quote was never 3x the power of the XB1. They said every developer has 3X the computational power of the XB1 available for them to use in the cloud

    • YOUDIEMOFO

      Yes everything was said by someone at Microsoft…… You can look it all up. Coming up to e3 before launch Microsoft pulled out all guns and everything they could say in order to attempt to have any leverage at all. Especially after they had to conform their entire road map to what the consumer wanted and that was completely different then their initial image.

      I was personally stoked about the cloud capabilities and these bold statements made early on. The support (wind) fell short of my sails as they kept back peddling following the months after E3. I get it that both companies have yet to totally deliver on what they’ve “supposedly” promised, but Sony has delivered on most of what they have initially stated AND have working prototypes available to the public at their shows.

      To me seeing is believing and that is truly what I consider factual by being able to produce and deliver on these aforementioned ideals and or marketing practices.

    • GHz

      What Sony delivered is an old idea that didn’t work back in the day. It was called Onlive. How can sony deliver what MSFT say they can do when they(sony)don’t have the infrastructure to do so. Kaz himself admitted this last year. You’re confusing the different ways you can use cloud tech and worse, using Sony’s implementation of it as lead. Sony cant even compete with Amazon, Google on that field. Only MSFT can. Sony’s role is a customer because it is not even their tech, and how they are using the cloud is not what developers want. It is not enough and is def not innovative. Their use of the cloud is an attempt to earn a quick buck. Remember what they said about EA early access program? And Remember how Sony tried to convince us, they had in place a better deal for us gamers?

      What MSFT is doing is way more ambitious. Not just streaming, but games that scale to every device form factor if DEVs are up to the challenge. That is only ONE of the things that Xboxlive Cloud is capable of doing. Respawn Ent. have a wealth of info in how they used it, and like they said, what they attempted wouldn’t have been possible wi/o Azure. And now w/e it is they used it for, other Devs now know that they can do the same if they want to implement the service into their games. As a gamer, I dont need to know the science of what was achieved, but its important to recognise that MSFT brought innovation in regards. So yeah, we might not see it sometimes but MSFT is delivering that new tech, and if you keep up with the news outside gaming about this tech, you’ll know its for real. It’s coming.

      Think bigger. Think ahead.

    • EssentiaX

      All this console war debate…
      My thoughts on this is simple. Whichever console has the games I want wins, even if that means multiple consoles. Specs, features, etc, don’t matter. It’s the games that do and that’s why we buy the console.

  • Lionheart

    Another thread infested by Lionheart and his anguish. Poor little “man.”


 

Copyright © 2009-2015 GamingBolt.com. All Rights Reserved.