DirectX 12


What’s the big deal?

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.

What makes Direct3D 12 better?  First and foremost, it provides a lower level of hardware abstraction than ever before, allowing games to significantly improve multithread scaling and CPU utilization.  In addition, games will benefit from reduced GPU overhead via features such as descriptor tables and concise pipeline state objects.  And that’s not all – Direct3D 12 also introduces a set of new rendering pipeline features that will dramatically improve the efficiency of algorithms such as order-independent transparency, collision detection, and geometry culling.

Of course, an API is only as good as the tools that help you use it.  DirectX 12 will contain great tools for Direct3D, available immediately when Direct3D 12 is released.

We think you’ll like this part:  DirectX 12 will run on many of the cards gamers already have.  More on that in our FAQ.

 

Is this marketing spin?

We (the product team) read the comments on twitter and game development/gamer forums and many of you have asked if this is real or if our marketing department suddenly received a budget infusion.  Everything you are reading is coming directly from the team who has brought you almost 20 years of DirectX.

It’s our job to create great APIs and we have worked closely with our hardware and software partners to prove the significant performance wins of Direct3D 12.  And these aren’t just micro-benchmarks that we hacked up ourselves – these numbers are for commercially released game engines or benchmarks, running on our alpha implementation.  The screenshots below are from real Direct3D 12 app code running on a real Direct3D 12 runtime running on a real Direct3D 12 driver.

 

3DMark – Multi-thread scaling + 50% better CPU utilization

If you’re a gamer, you know what 3DMark is – a great way to do game performance benchmarking on all your hardware and devices.  This makes it an excellent choice for verifying the performance improvements that Direct3D 12 will bring to games.  3DMark on Direct3D 11 uses multi-threading extensively, however due to a combination of runtime and driver overhead, there is still significant idle time on each core.  After porting the benchmark to use Direct3D 12, we see two major improvements – a 50% improvement in CPU utilization, and better distribution of work among threads.

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

 

Direct3D 11

Direct3D 12

 

Forza  Motorsport 5 Tech Demo – console-level efficiency on PC

Forza Motorsport 5 is an example of a game that pushes the Xbox One to the limit with its fast-paced photorealistic racing experience.  Under the hood, Forza achieves this by using the efficient low-level APIs already available on Xbox One today.  Traditionally this level of efficiency was only available on console – now, Direct3D 12, even in an alpha state, brings this efficiency to PC and Phone as well.  By porting their Xbox One Direct3D 11.X core rendering engine to use Direct3D 12 on PC, Turn 10 was able to bring that console-level efficiency to their PC tech demo.

 

 

Where does this performance come from?

 Direct3D 12 represents a significant departure from the Direct3D 11 programming model, allowing apps to go closer to the metal than ever before.  We accomplished this by overhauling numerous areas of the API.  We will provide an overview of three key areas: pipeline state representation, work submission, and resource access.

Pipeline state objects

Direct3D 11 allows pipeline state manipulation through a large set of orthogonal objects.  For example, input assembler state, pixel shader state, rasterizer state, and output merger state are all independently modifiable.  This provides a convenient, relatively high-level representation of the graphics pipeline, however it doesn’t map very well to modern hardware.  This is primarily because there are often interdependencies between the various states.  For example, many GPUs combine pixel shader and output merger state into a single hardware representation, but because the Direct3D 11 API allows these to be set separately, the driver cannot resolve things until it knows the state is finalized, which isn’t until draw time.  This delays hardware state setup, which means extra overhead, and fewer maximum draw calls per frame.

Direct3D 12 addresses this issue by unifying much of the pipeline state into immutable pipeline state objects (PSOs), which are finalized on creation.  This allows hardware and drivers to immediately convert the PSO into whatever hardware native instructions and state are required to execute GPU work.  Which PSO is in use can still be changed dynamically, but to do so the hardware only needs to copy the minimal amount of pre-computed state directly to the hardware registers, rather than computing the hardware state on the fly.  This means significantly reduced draw call overhead, and many more draw calls per frame.

Command lists and bundles

In Direct3D 11, all work submission is done via the immediate context, which represents a single stream of commands that go to the GPU.  To achieve multithreaded scaling, games also have deferred contexts available to them, but like PSOs, deferred contexts also do not map perfectly to hardware, and so relatively little work can be done in them.

Direct3D 12 introduces a new model for work submission based on command lists that contain the entirety of information needed to execute a particular workload on the GPU.  Each new command list contains information such as which PSO to use, what texture and buffer resources are needed, and the arguments to all draw calls.  Because each command list is self-contained and inherits no state, the driver can pre-compute all necessary GPU commands up-front and in a free-threaded manner.  The only serial process necessary is the final submission of command lists to the GPU via the command queue, which is a highly efficient process.

In addition to command lists, Direct3D 12 also introduces a second level of work pre-computation, bundles.  Unlike command lists which are completely self-contained and typically constructed, submitted once, and discarded, bundles provide a form of state inheritance which permits reuse.  For example, if a game wants to draw two character models with different textures, one approach is to record a command list with two sets of identical draw calls.  But another approach is to “record” one bundle that draws a single character model, then “play back” the bundle twice on the command list using different resources.  In the latter case, the driver only has to compute the appropriate instructions once, and creating the command list essentially amounts to two low-cost function calls.

Descriptor heaps and tables

Resource binding in Direct3D 11 is highly abstracted and convenient, but leaves many modern hardware capabilities underutilized.  In Direct3D 11, games create “view” objects of resources, then bind those views to several “slots” at various shader stages in the pipeline.  Shaders in turn read data from those explicit bind slots which are fixed at draw time.  This model means that whenever a game wants to draw using different resources, it must re-bind different views to different slots, and call draw again.  This is yet another case of overhead that can be eliminated by fully utilizing modern hardware capabilities.

Direct3D 12 changes the binding model to match modern hardware and significantly improve performance.  Instead of requiring standalone resource views and explicit mapping to slots, Direct3D 12 provides a descriptor heap into which games create their various resource views.  This provides a mechanism for the GPU to directly write the hardware-native resource description (descriptor) to memory up-front.  To declare which resources are to be used by the pipeline for a particular draw call, games specify one or more descriptor tables which represent sub-ranges of the full descriptor heap.  As the descriptor heap has already been populated with the appropriate hardware-specific descriptor data, changing descriptor tables is an extremely low-cost operation.

In addition to the improved performance offered by descriptor heaps and tables, Direct3D 12 also allows resources to be dynamically indexed in shaders, providing unprecedented flexibility and unlocking new rendering techniques.  As an example, modern deferred rendering engines typically encode a material or object identifier of some kind to the intermediate g-buffer.  In Direct3D 11, these engines must be careful to avoid using too many materials, as including too many in one g-buffer can significantly slow down the final render pass.  With dynamically indexable resources, a scene with a thousand materials can be finalized just as quickly as one with only ten.

 

Want to know more?

Subscribe to this blog

Follow us @DirectX12

Come see us at //build

AMD Press Release – DirectX 12

NVIDIA Blog – DirectX 12

 

Want to be one of the first?

Are you a professional game developer?  Do you think Direct3D 12 would ignite your game’s performance?  Click here to apply for the DirectX 12 early access program.

Privacy Statement

 

FAQ

Q: Should I wait to buy a new PC or GPU?
A: No – if you buy a PC with supported graphics hardware (over 80% of gamer PCs currently being sold), you’ll be able to enjoy all the power of DirectX 12 games as soon as they are available.

Q: Does DirectX 12 include anything besides Direct3D 12?
A: Also new is a set of cutting-edge graphics tools for developers.  Since this is a preview of DirectX 12 focused on Direct3D 12, other technologies may be previewed at a later date.
 
Q: When will I be able to get my hands on DirectX 12?
A: We are targeting Holiday 2015 games.

Q: What hardware will support Direct3D 12 / will my existing hardware support Direct3D 12?
A: We will link to our hardware partners’ websites as they announce their hardware support for Direct3D 12.

 

Comments (145)

  1. DX says:

    Will DX12 work on Windows 7 … ???

  2. XBOX ONE says:

    Can you tell us more about DX12 AND XBOX ONE? How will XBOX ONE benefit from DX12? 🙂

  3. Ultrahead says:

    Will you guys also deploy an official managed wrapper of DX12 at launch? (for devs using C#)

  4. Daniel says:

    from what I saw AMD is participating in the project and from what I understand the Direct X12 will be a low-level API so I would like to leave a question, is there any link between Direct X12 and AMD MANTLE? the mantle served as inspiration or something?

  5. That Guy Who Does Stuff With C++ says:

    MANTLE didn't serve as inspiration; the question that spawned MANTLE did, however.

  6. Ultrahead says:

    What about Windows Phone and Surface tablets? Is DX12 designed to support the current HW architecture of those devices? Or should we expect new supported devices for Holiday 2015?

  7. jonathan tucker says:

    so does this mean any computer with DX11 hardware can take advantage of DX12? I have an AMD A8 4500M and would like to know if AMD APUs will get DX12 support.

  8. Hellsfoul says:

    "Will DX12 work on Windows 7 … ???"

    I'm pretty sure not! MS wants to sell its new Windows 8.1. And therefore I stay at Win 7 and use Mantle.

  9. GearHead says:

    Q: Is Mantle Dead

    A: Yes

    Seriously though it will be nice to see how well this runs on all systems.

  10. mac says:

    "Console-level efficiency" LOL, consoles have always been behind PCs… it's the lazy developers that cause PC ports to be so bad.

  11. Alessio T says:

    "Want to be one of the first?

    Are you a professional game developer?  Do you think Direct3D 12 would ignite your game’s performance?  Click here to apply for the DirectX 12 early access program."

    Are tudents allowed to participate too?

  12. Alessio T says:

    *I meant "students"

  13. Nico says:

    If they do not support Windows 7, then Mantle will have a field day. Windows 8 is only used by 20% of the gamers: store.steampowered.com/hwsurvey

    They mentioned that on release 50% of existing gamers will be able to use DX12. So that would mean win7 gets dx12 or they are hoping that in 18 months win8 will have a 50% market share. Which I highly doubt. Cause metro sucks. A lot.

    It gives Steambox another 18 months too.

  14. Mark says:

    mac you idiot, the efficiency is referring to resource assignment & distribution and getting the most out of what you have got – not the raw power of a system. PCs are very powerful but it is rare that apps and games utilize their resources to their optimum potential so if DX12 helps then everybody wins.

  15. Ultrahead says:

    @jonathantucker: afaik, DX12 will be supported on AMD's cards with GCN architecture.

  16. Martin says:

    I'm getting mixed signals here, in windows 8.1 Microsoft changed the way mouse input is handled, which made it worse for gaming. But directx 12 is obviously targeting gamers, especially PC gamers with the "closer to the metal" talk.

  17. aL says:

    cant wait to hear more details about the api, please release the docs to the public soon 🙂

  18. aL says:

    Also, manages wrapper/ sharpDX support would be really great!

  19. Yeahright says:

    Lol.. the fact people even joke about  the release news says something..

  20. Nvider says:

    Good News for Fermi users , Nvidia announced that Fermi cards and onwards ,will support dx12 which means Geforce 400 +

  21. mr x says:

    more importantly is forza 5 coming to pc?

  22. GenialityOfEvil says:

    If this is Windows 9 exclusive I'm switching to Linux.

  23. noobboob says:

    its a shame it took mantle for you people to get off your asses

  24. bluescrn says:

    Does it definitely support desktop apps, then? (I was half expecting the next DirectX to be Metro-only…)

  25. Rasmus Wriedt Larsen says:

    please people, embrace the open standards! OpenGL is the way to go 😉

  26. steven says:

    will it work on amd mobile raedon 5800???????

  27. Elliot says:

    It's targeting a Holiday 2015 release, so following off from past DX.. releases I think it's more likely we'll see this as only being available on Windows 8.1 and Windows 9 (Comes out in 2015 too).

    But I think it's safe to say Mantle is dead, considering AMD need to pay people to implement it alongside DX games. Now you can see why NVidia didn't bother doing their own API to further split things like the old days, they've been working with DX12 all along and not against it. Smart move.

    Nothing wrong with W8/8.1, its just people too scared of change for the metro ui which is understandable in this day and age, I used to think it sucked until I moved across when I built a new PC. Best decision since it makes W7 better. Looking forward to 9 since it might just be what 7 was to Vista.

  28. R2ch says:

    Sounds exciting, however if it turns out to be windows 8+ only that will be my final straw and I will move my house to a nix environment.

    And yes I have to work with 8 all the time supporting people at work so I know how use Metro I just hate it. I loath windows 8. I like my desktop and start button and task bar. All of which I use all the time.

    Quit trying to tell me you know how I want to use my interface better than I do.

  29. FireFreak111 says:

    So this could revolutionise deferred shading, with the need for things like uber-shaders removed, and techniques like deferred lighting unnecessary, saving geometry from having to be rendered twice.

    Allowing a high draw call count on all hardware will change the way games are made, reducing the need to combine meshes, to make objects static and to make models look the same. The complex workflows of today's asset creation can once more become simple, with the limits of memory on all platform freed by consoles, and the overhead of dynamic worlds freed on PC.

    Freeing up that CPU time can allow games to spend more time on the amount of varied content, or even forgo improved graphics, instead spending those precious milliseconds on AI on genres like strategy. PC Gaming won't be the same again. Hopefully the changes to drivers fold down to older Direct3D feature levels somewhat. Windows 7 needs this, to ensure primarily PC games can change the way they are developed ASAP.

    With OpenGL also implementing extensions to their existing pipeline to reduce overhead (a pipeline overhaul is long overdue), and the majority of engines (UE4) ending static workflows, it should ensure all platforms can change the way they develop games, focusing on just creating content and removing the need for artists to waste time on extreme optimization for every single model.

    All we need is a Windows 9 with a unified Desktop/Modern Windows Store for all apps, the ability to have WinRT apps usable on the desktop environment, and extensions to WinRT to allow overlapping windows. This would allow sandboxed, secure apps in the desktop environment. And, all future desktop apps could run in the Modern UI too, in fullscreen/snapped view. Existing ones running in that environment may be less secure, but could boost the Modern ecosystem on x86.

    We need an API for the store to allow services like Steam to list games in the store, but have the purchase funds and payment platform handled through Steam. Even if that's unfeasible, then open up the Live Tile's to desktop apps, making the start screen and possible start menu more lively for x86 users.

    Lastly, an implementation of a start menu with Live Tiles within and a Modern UI overhaul of the desktop environment (icons primarily, syncing colors with the Modern UI) would allow a user to choose how they wish to use Windows.

  30. subtitan says:

    to all you poor idiots on windows 7, D12 will only be supported in Win 8 and next generation windows

  31. R2ch says:

    Then I guess we'll be using openGL on Linux and saving some money on Windows Pro and Premium licensing during our next computer builds.

  32. k33 says:

    As I thought, it's one another Microsoft's copy what AMD has already done.

  33. David says:

    If Microsoft doesn't support Windows 7 many developers may choose not to go all in on DX12.

  34. Satya says:

    @We are targeting Holiday 2015 games@  ahaha, lazy hindu boyz, it must be available now or yesterday.

  35. Ed says:

    Well if Win 9 will get the start menu back and apps on the desktop AND DirectX12 then I am in like flynn!.

  36. Bruce Shankle says:

    Thanks for the write-up, Matt. I hope you are doing well. Looking forward to seeing the new stuff.

    -B

  37. pro says:

    @subtitan, I am one of those poor ones. I will not migrate to Windows 8 until next hardware upgrade (new machine) when have to install a fresh OS anyway. I have everything setup in a production machine (Windows 7) which works and everything is perfect. Migrating all settings, links, emails, backup systems and so forth would be a chore I am not looking forward to. The cost of upgrade is meaningless, I am not short of resources like cash. The problem is time and fuss of migrating to a new machine. If the DX12 requires upgrade, fine, then I will have to do it but not a day before. God bless you.

  38. equicorplegal says:

    <a href="http://www.equicorplegal.com/Home.aspx">Collective investment Schemes</a>

    your next version 3D support windows7

  39. przemo_li says:

    So rephrasing:

    Yes THIS year GDC presentation will be PR stun, caused by pressure from AMD's Mantle.

    But its good cause we now openly speak about our plans, which involve ignoring PC till we are done with Xbox One, and then we will bring that work to the world of PC.

    That would be great news if only they targeted 14'. But almost 2y? Heck, in that time frame OpenGL ecosystem may advance so much that MS will need DX badly just to stay alive in the 3D business.

    (And no word about mobile, which OGL do better)

    But hey, if MS do push all GPU vendors in one direction, we all should be grateful.

  40. JB says:

    What is "Holiday 2015" supposed to mean?

    I assume some American term that doesn't mean anything to me…

  41. XNA says:

    When will a DirectX 12 version of XNA be released? Are you going to announce XNA 5 during the Build conference?

  42. AMD user says:

    Don´t support windows 7 all install AMD's Mantle.

    I think Microsoft don´t like lose the control and he support Windows 7.

  43. AMD User says:

    I hope he Install DX12 on all system who find compatible Hardware.

    AMD HD7000, Haswell ore Nvidia

    Don't talk about Installed Windows version…

  44. Dax says:

    Mantle will be a better choice in near future. DirectX12 is just an upgrade.

  45. Nico says:

    Apparently 'Holiday 2015' means Christmas 2015 or in normal words December 2015. Pretty retarded way to communicate a deadline alright. I had to look that one up too.

  46. BSODM says:

    Those are great news! You see now Microsoft is trying to best utilize the new hardware capabilities of PC's – replacing the buggy inefficient legacy software being the core of Windows since version 98. Look at Win RT, replacing entirely Win32 API, now DirectX will be reborn too and there are even plans of making a new kernel for Windows 9. This is a very good direction – I like it!

  47. Nico says:

    Hehe, last year Microsoft had no plans for DirectX 12: tech-beta.slashdot.org/…/amd-says-there-will-be-no-directx-12-ever

    If it wasn't for Mantle, then Microsoft would have ditched PC gaming all together.

    Actually they only care for their Xbox, so they probably do directx 12 on windows 9 only, so that PC gaming lags behind and xbox doesn't look so crappy compared. I think Valve had it right, we need to get rid of Microsoft.

    As for the xbox, it will give 5 to 10% more frames on cross platform games. Just like Battlefield and Thief with Mantle. That is, IF directx 12 is as good as mantle. Which is built for GCN only, not all gpu's.

    Xbox exclusives will be very interesting. I am thinking Swarm type of games with 10 times the amount of objects! Which is great news for Xbox owners!

    Talking about good news, DX12 will EVENTUALLY get pc gamers those Swarm type of games as well. But that will take several years at least, for a developer to do a DX12 only game.

  48. AndyJ says:

    @Nico – Last year there was a slashdot post about and article about someone who's not able to talk about Microsoft in an official capacity.

    And the article even says:

    This was later clarified in a second email to mean that XNA was being discontinued but DirectX was an on going concern:

    “DirectX is no longer evolving as a technology.” That is definitely not true in any way, shape or form. Microsoft is actively investing in DirectX as the unified graphics foundation for our key platforms, including Xbox 360, Windows Phone and Windows. DirectX is evolving and will continue to evolve. For instance, right now we’re investing in some very cool graphics code authorizing [sic] technology in Visual Studio. We have absolutely no intention of stopping innovation with DirectX

    Slashdot is not reliable. The sources that post used are not official.

  49. Just Curious says:

    Will DX12 be supported on Windows 7?

  50. Tessy says:

    "Everything you are reading is coming directly from the team who has brought you almost 20 years of DirectX."

    That means you are the ones to blame for messing up DX in the first place and then lying about it for years.

    This sudden illusion of honesty i find very suspicious. What is it you do not want us to see this time?

    What sort of lies, direct lies, or lies by omission are you using this time?

    We do not trust microsoft or its DirectX.

    Where is the OpenGL support for Visual Studio ?!

    You know, a global multi-platform standard. Just like the C++ standard you have been dragging your feet with implementing for years!

    This sort of fake honesty tell us all we need to know about how you do not care about users. Especially desktop users. You only did this because AMD came out with mantel.

    This IS a PR stunt. "Hey! We still exist. We are working on  something relevant. Do not leave us."

    DirectX is garbage for many reasons. One of them is the forced use when writing xbox games Another is the anti-consumer tactics, like the previous example, but also by undermining the support for OpenGL by not having support for it. In any of your development programs.

    That is biased.

    Just like you add features for C#, your own crappy language while dragging your feet with C++ support.

    You are like a murderer. You just can't stop doing bad things.

  51. Josh U says:

    Threatening to move to Linux?  Ah, that old chestnut!  I get all nostalgic every time I hear that.  I strongly suggest that all of you children making that threat just go and do it.  Perhaps throwing I'm-leaving-ultimatum tantrums will work to greater effect in the Linux community where you don't need to deal with such things as a lack of endless backwards compatibility or UI paradigm changes.

  52. Josh U says:

    @Tessy – Ooh, the raw emotion and righteous indignance!  How dare they not build everything for everyone!  Those…those…those….MURDERERS!

  53. OpenGL is King says:

    Does this support OpenGL or is Microsoft just going its own direction here? You know, mom always said to play well with others.

    I understand, it is difficult for you to read code, but all the intelligent kids are doing it, and it's high time you grew up! You know, kids like Apple and Google and Sony and Nintendo. No pressure. Okay, go ahead and just play in your little sand box. The world is a scary place for you…  …maybe you should pursue other career goals that are more to your skill level. I think calloborative development may be beyond you abilities…

  54. Greg C says:

    Windows 7 support? Don't expect it.

    Targeting end of 2015 means that Windows 9 will be the current release. I would expect back-ports to Windows 8 to be available. Going back 2 generations to W7? Don't expect that. I can't say I would blame MS either.

    It is nice to see DX evolving.

  55. When? says:

    When DX12 is available for all developers?

  56. OpenGL has its place says:

    @OpenGL is King : "Does this support OpenGL…"   What kind of question is that?  That's like asking if the English language works with the German language.  I find it amusing that you talk about reading code, but it's obvious you know naught of what you speak.

  57. Johan says:

    Please, please, please do not repeat the DX10 fiasco which held up graphics development for years because nobody wanted Vista. Even today most games still support dx9 because of this huge mistake years and years ago. Guess what, nobody wants Windows 8 either, please show us you actually care about the PC as a gaming platform and don't fragment the PC gaming environment again. Backport it to AT LEAST Windows 7.

  58. DAOWAce says:

    Yeah, of course they make zero mention of what version of Windows this will be released for.

    Considering the screenshot, it will be 8.1 and above, which means it will fail completely in comparison to something like Mantle or improved OpenGL.

  59. Mort says:

    I sure hope DX12 will support Windows 7. Nobody wants to develop a game that doesn't work on the most popular operating system available, even if that means that the game will run faster. Many games still use DirectX 9, to be able to support Windows XP, I agree completely with Johan, for DX12 to be a success it must at least run on Windows 7.

  60. nkast says:

    Early support to managed API such as SharpDX would be great!

    Will DX12 be more C++/CX friendly (based on IInspectable) ?

    or are we going to see a more flexible C++/CX that allows pointers as arguments?

    The scenarios I am interested in include moving part of drawing and Geometry generation to C++ and avoid making draw calls and  moving data arrays across the abi boundary.

    So, the ability to pass DX interfaces (or SharpDX instances) across Windows Runtime Components is necessary.

  61. dbacher says:

    They probably don't have a firm idea what versions of Windows they can deliver on.  Presumably, to do this, they need the driver manufacturers to be on board — and so the driving force would be, in 18 months, what versions of Windows are available, the relative use of them, and the willingness of NVidia and AMD to release drivers for their older devices.

    My prediction on Mantle is that it will become the new OpenGL.

    AMD appears to be positioning it on Linux and MacOS as well as Windows, and so if you want to support more than just Windows, it will be the go to API.  If they release a SDK under reasonable terms to NVidia and Intel, and anyone else,– it would be hard to see NVidia not porting the API to Android for use on Shield.

    Similarly, the Linux drivers will almost certainly appear in Steam OS.

    Meanwhile, the odds of Microsoft making DirectX 12 run on anything other than Microsoft's own platforms seem vanishingly slim.

    And so what'll happen is game companies that have to support non-Microsoft platforms (e.g. most of them) and indie developers being crowd funded trying to get precious dollars (e.g. almost all of them) will need to support MacOS and Linux.  They'll have a choice between developing a separate Windows version, or using AMD's API and having one version of their engine that they can reuse on everything.

    Somehow, I think one code to rule them all will win.

  62. Tessy says:

    Using ad hominem arguments will not make previous comment any less right and valid.

    It is said that low lifes, not having enough intelligence to make a valid counter-argument will use ad hominem arguments.

    It really do not surprise me that this blog is visited by cognitive biased low lifes that do not have a brain to think for themselves.

    Too bad an intelligent healthy discussion could not be started. A discussion that would make both parties happy to some degree.

    What will you do next to try and censor my realistic viewpoint?

  63. daniel says:

    if windows Don't support windows 7 then it's hello steamn os by the time dx12 out (2015) steam os will support all top titles  

  64. CC says:

    If DX12 is supported by DX11 hardware then I would expect it to run on every desktop platform that can host the DX11 runtime. That means Vista and later, since Vista is still on "extended support" status until 2017.

    If instead this turns out to be another Metro thing, then my response would be a shrug followed by an ignore.

    @ OpenGLIsKing, you said, "Does this support OpenGL"

    That question doesn't make any sense. At all. It's literally gibberish.

  65. e says:

    Idiot children, this is clearly Mantle's programming guide.

    dx12 IS mantle.

    Nvidia idiots: how do you expect cards that do not fully support dx 11.2 to actually provide full support for dx12? THEY WONT.

    NVidia:

    dx11.2*

    dx12*

    (*dx11 level feature support)

    This is how nividia complies with standards and specifications for APIs…THEY DON'T

  66. MikeBMcL says:

    @Tessy

    > Where is the OpenGL support for Visual Studio ?!

    > You know, a global multi-platform standard.

    OpenGL is not a standard. It has not been approved as an international standard by ISO, IEC, or ECMA. To my knowledge, no major national standardization body has adopted it as a standard. Hardware vendors have to obtain a license if they want to support it ( http://www.opengl.org/about ).

    And Khronos membership costs money. So why should Microsoft pay money to support something that isn't a standard and to which it has an alternative? It shouldn't and it doesn't and complaining on a blog isn't going to change that.

    I'm excited to hear about DirectX 12 and am glad that Microsoft has been willing to be this open with their future plans. The ideas presented for D3D12 make a lot of sense and seem to be an evolution of the ideas in D3D10 and D3D11 (on the surface it's just a further move towards immutable state objects, though the guts are undoubtedly far more complicated). I look forward to hearing about the plans for the rest of DirectX when Microsoft is ready to share them (which will hopefully be soon).

    And yes, I am a Microsoft fan. I'm also a computing technology fan in general. Feel free to direct ad hominem attacks about how I'm just a fan of Microsoft to /dev/null and about how I'm just a fan of computing technology to the rubbish pile outside the cave (the one for used clay tablets, not the one for mammoth entrails).

  67. nord0 says:

    Do the world a favor.

    Use OpenGL.

    It draws faster, and its open. Open for everybody.

  68. nord0 says:

    "Will DX12 work on Windows 7 … ???"

    Of course not.

    Microsoft want to sell new windows licenses.

    People should stop worrying about this load of crap, and focus on OpenGL instead.

  69. tiruns says:

    Will there be a PC version of Forza Motorsport 5? 🙂

  70. Giovanni says:

    Ahhh finallyyyy the future is coming!!! so hyped!

    P.S.

    DX12 is going to be windows 9's baby, maybe maybe windows 8.1… doubt it though. This makes perfect business sense for microsoft to encourage customers to get their latest OS. (remember dx11.2 is exclusive to xbox one and windows 8.1?)

  71. Giovanni says:

    P.P.S.

    at least windows licenses are getting cheaper than they used to be

  72. sfsdf says:

    Nice progress!!

    Does this mean you can now store your draw calls on the GPU and call the whole draw call with one function per frame if nothing changes to your scene and materials?

    Thereby avoiding almost all draw calls? Radically reducing draw calls per frame?

    While updating things like arguments per frame dynamically?

    Does the resource management allows you to write streaming maps where you don't have to implement draw calls per chunk you load+render? Where you can add some memory management through the resource bundles and use of double/triple buffered descriptor heaps and tables to render put into a table that can easily be updated dynamically without incurring much draw calls or synchronization cost?

    Developers would love to loose the draw call limitations and get the most out of the hardware this way.

    Would give an advantage compared to OpenGL if you could write Minecraft like games with low overhead from draw calls.

  73. sfsdf says:

    Meant to say with low overhead from the loss of draw calls in the older DirectX/OpenGL ways.

  74. stahtufiang says:

    they got to get win8 up to task for gaming then have to see what's the next gen of CPU will bring together with a new gen of GPU's and the 4K displays on mobile gaming, maybe in a few years with the 18nm chip. when this three elements will be in sync with each-other then we'll see a true gaming experience on a mobile device, and one more thing, mass production means LOWING the damn PRICE.  have fun, see you in a few years

  75. przemo_li says:

    """

    OpenGL is not a standard. It has not been approved as an international standard by ISO, IEC, or ECMA. To my knowledge, no major national standardization body has adopted it as a standard. Hardware vendors have to obtain a license if they want to support it ( http://www.opengl.org/about ).

    And Khronos membership costs money. So why should Microsoft pay money to support something that isn't a standard and to which it has an alternative? It shouldn't and it doesn't and complaining on a blog isn't going to change that.

    """

    Read Wikipedia entry on "Standard" and then go read European definition of "Open" Standard.

    And no, no vendor have to obtain any license to support the API. TRADEMARKS are different story. That's why despite not such license Mesa project was (and still is) happily implementing all the OpenGL functionality.

    (Though with that Khronos membership You gain right to use all the other members patents necessary to implement OpenGL patents…)

    But I do agree that MS do not have any business interest in supporting OpenGL. Its distracting devs from its offerings (Windows), it break MS monopole (Windows, DX), it make very hard for MS to enter new markets (WinP), etc.

    But hey, all that is exactly perfect justification for gamers to wish for something else (like OpenGL, which anybody can implement!)

  76. AMD user says:

    First step DirectX 11.2 not only included in Windows 8.1, Windows RT and Windows Server 2012 R2.

    Note There is no standalone update package for DirectX 11.2. You can only install this DirectX version through Windows Update in Windows 8.1, Windows RT and Windows Server 2012 R2.

    Change to make uptade for Windows 7

  77. Jeremy says:

    Microsoft should just allow people to stay on windows 7 & make a package available for purchase that the market can buy to upgrade your current windows 7 DX11 to DX12 without having to buy a whole new OS. A DX12 upgrade disc. 😉

  78. Ciprian Stanciu says:

    @ Jeremy

    You don't realize what DirectX is then. DirectX starting with Windows 7 is used to draw the 2D windows on your desktop, so at least a windows component, the window manager needs to work with the new DirectX version (which btw includes functions that are not necesarily in the user mode API). So upgrading to DX12 on Windows 7 would also mean backporting the window manager and who knows what other dependencies they have there, there could be millions of lines of code dependent on the old DirectX that would now need to be upgraded to DirectX12. Imagine a game that's using 50 million lines of code and is written on DirectX11, now evaluate how much time it would take to upgrade to DirectX12 where the API changed dramatically. ETA for the job : 10 years 🙂

  79. ? says:

    I can not wait for it.Please help…

  80. MS-Sucks says:

    ooooh i just jizzed in my pants in anticipation for something thats about 2 years away

  81. MtVernonCannabisFarms says:

    can we get a heads up on improvements to direct compute in DX12 ?

  82. mike says:

    To DX – during build it was stated that Directx 12 will run on Windows 7 and newer.

  83. Duke says:

    Do i need directX to play starbound

  84. Major says:

    Will DirectX 12 work with Windows Vista?

  85. John says:

    Silly question but is games that are released now like COD ghosts utilize DirectX 12? Or only games that are made for it only?

  86. Amine Bouhafs (The Netherlands) says:

    Why don't you guys make a list with all current (and upcoming) GPU's that (will) support Direct3D 12?

    We all already know if games that will support it depends on the game devs.

    And will there also be DirectSound3D 12?

  87. Dragon says:

    If you plan on sticking with windows 7 along with mantle, I'll be sticking with windows 8.x with mantle and direct X12.

  88. Valoral says:

    Keep up the good work!

    Can't way to start learning it.

    And to all OpenGL lover.. just get away from here pls. You speak about freedom but you want impose your ideas nevertheless.

  89. M Avelar says:

    I'm really looking forward to DX12 release. How come there aren't regular updates here or on Twitter?

  90. chc says:

    good !!! download。。。

  91. Devil says:

    How can I download it ?~~

  92. radix sort says:

    Will I be able to use Dx12 drivers on Linux or Mac? Chrome or Stream OS? Mantle is the dream. Game what I want where I want. If you can't adapt fall behind.

  93. farhad says:

    do you mean the R9&7000 series will support all of directx 12 features even the specials or some of the features and atleast we must upgrade the gpu because i want to buy a new r9 280x and i hope it works for 4 years without problems

  94. wtfskilz says:

    This is XP/vista all over again, no body wanted to leave XP it was faster smoother and didn't have the annoying UAC popping up every 5mins ( are you sure you want to open this file?) but they upgraded to Vista because Microsoft chose the smart marketing strategy of not giving XP a patch for it and ended up making tons of money.

    Okay so windows 7 didn't even get DX11.1 what makes you think it's going to be able to get DX12? that's hilarious.

    Microsoft is going to use this DX12 as the main benefit to get Windows 9 and/or 8.

  95. wtfskilz says:

    XP a patch for DX10**

  96. Doug says:

    DirectX 12 will only be available on Windows 10

  97. Paul says:

    Where can we download the SDK for DX12? I need to see it in action, and maybe make a game for it

  98. Orthodox SJW says:

    Will D3D12 be available for SJW's? Or jews? Or, what about "female" gaemers?

  99. dav says:

    What directX needs is a new agent to enable managed code to get thru. Then the trickle to the MS Windows store might become a torrant. It would release fashionable VB, abundanct C#, and more so it would unchain immutable and functional F# so we can really move forward. Mantle wont replace OpenGL, because its already opened the gates to more accessible platforms.

  100. Syllinx says:

    I hope it will simply let you install it and it will benefit older games and newer games. It would be nice if somehow it lowered memory requirements for some games when it comes to video cards. I don't like seeing games like Shadows of Mordor wanting a 6 gig video card. Honestly I know nothing about textures and memory or programming.

  101. K.Petkov says:

    What kind of blog is this!? No updates for ~9 months …

  102. Rudolf Hitler says:

    "Will D3D12 be available for SJW's? Or jews? Or, what about "female" gaemers?"

    Hahaha…. We would be at Directx 18 if there weren't any Jews.

  103. pi4a7a says:

    DirectX 12 won't be supported on Windows 7 – YEAH! GO UPGRADE TO WIN 8.1 !

  104. someone says:

    @OpenGL is King

    Nintendo and Sony use custom rendering api differenct from d3d/gl. search for libgcm

  105. Tim Gates Huang says:

    "Is this marketing spin?

    We (the product team) read the comments on twitter and game development/gamer forums and many of you have asked if this is real or if our marketing department suddenly received a budget infusion.  Everything you are reading is coming directly from the team who has brought you almost 20 years of DirectX."

    Of course not! 😉 It's one of the greatest coincidences of the millennium, that M$ announced DX12 couple of weeks after AMD announced Mantle. I mean, how on Earth could you explain then such a coincidence? AMD and M$ secretly developed such a similar framework and oddly enough released it in the same time.

    On the positive note, it'll run like a charm on my AMD system. 😀

  106. Chad says:

    Does anyone know if DX12 will work on W 8.1? I do not want to upgrade to W10 just because of that.

  107. Seppo Yli-Olli says:

    Just a blind guess from a non-affiliated person: The support may end up being dependent on WDDM version. If Win8.1 WDDM version is good enough, MS may at least consider it. MS has pushed a new WDDM version about every OS release and I'm highly sceptic DX12 will be backported to older WDDM than what it was originally designed against

  108. ast says:

    Is it just me that finds it slightly suspicious that the XBOX One's GPU had support for the new DX12 api all along and yet nobody with a Dev kit knew about it or didn't say anything if they found out? Hopefully this means that it might be compatible with our DX11 graphics card to some extent, but I am questioning how much of a change this really is besides improved performance.

  109. hbgn says:

    very good,it is so beatiful ,so cool

  110. Dr.Mengede says:

    Signed up a while ago for  the DirectX 12 early access program, but until now… nothing.

    Not a single reply from Microsoft.

    Kinda nice from them, I am testing my ass off with their programs and 3rd party.  atm I am testing tech. preview build 9879.

    And still No Dx12 on it, just a lot of bugs to fix.

    I really would like to (stress) test DirectX 12 on these systems. If it is as good as they promise…  I really hope so. Engineering, Graphical and other Design work will be a lot smoother. (and of course the gaming in my freetime. hehe)

  111. 李培豪 says:

    Signed up a while ago for  the DirectX 12 early access program, but until now… nothing.

    Not a single reply from Microsoft.

    Kinda nice from them, I am testing my ass off with their programs and 3rd party.  atm I am testing tech. preview build 9879.

    And still No Dx12 on it, just a lot of bugs to fix.

    I really would like to (stress) test DirectX 12 on these systems. If it is as good as they promise…  I really hope so. Engineering, Graphical and other Design work will be a lot smoother. (and of course the gaming in my freetime. hehe)

  112. M Danish says:

    Microsoft Should Make A Direct X 12 Graphic Demo, Which Include Hololens, Cortana, XBOX One, Skype,

    Windows 10 logo and more products adds in 3d.

  113. Yo micro softies says:

    Tell me please how is it a problem to make DX12 available for W7?

    If you really decide to piss me off in this one… then W7 was the last MS product I bought.

    I wont switch to W10 with my system running that smooth now. And my application / tweaked setup.

    You think I like to spend 1-2 months to optimize my new W10 installation, now that I have a perfect W7 rig going?

    If you don't make this available for W7, I will start advertising Ubuntu / Mint in my non-gamer customer base.

    And I will keep my gamer customers convinced that they don't need Windows 10 over Windows 7 just for DX12. Trust me. Don't piss off Windows 7 users. You will lose market percentages!

    And now please just for being truthful with each other.

    Can the friendly MS-Dev just confirm in here that the implementation of DX12 for W7 is not really a matter of hard work but so far it is MS politics that DX12 is used to promote W10. Just acknoledge the fact that the implementation could be done with only reverting minor adjustments which basically have been implemented to PREVENT users from installing DX12 with W7 in the first place.

    Many people are not dumb. We know how an OS works. We know what a kernel is. We know the REAL (tiny tiny tiny) differences between W7, W8 and W10. And we know that the kernel and system core are almost similar. Which means you can roll out DirectX 12 for all NT kernel 6.x versions.

    Do it! Don't be afraid of communicating with me. Talk to your community, thanks.

  114. Windows 10 news says:

    I doesn't mater if it will work on windows 7 because for the first year of windows 10's life it will be free to windows 7 and windows 8.1 users

  115. Joshua K. says:

    @Windows 10 news

    yes, but what is with people who dont want to do the work of switching to windows 10 in the first place?

    i am very happy with windows 7, why should i risk compatibility issues. or why do i have to learn the new design when i like the one of windows 7.

    also i need to reinstall my programs… but.. I DONT WANT TO. i have so many of them. and i need to redownload the installers … NO THANK YOU.

    just implement directx12 into windows 7 and 8 as well.

  116. K Le Blanc says:

    Spin, hell this team is creating a vortex of massive proportion, from the length of their noses as they do the spin. Considering Direct3d acceleration doesn't even work, at least on mine it doesn't.

  117. tim says:

    people need to get away from windows 7

    windows 8.1 is much better for gaming

  118. paul thomson says:

    i am using win 10 pro preview due to not being able stop my nvidia gtx 560m 3gb card crashing, however now my probs have vanished and i read all the comments slating microsoft not going to release direct x12 for win 7? Maybe but is not a problem as Microsoft are if update/upgrade to win 10 with first 12 months of release  it is free for win 7 upwards users…win 10 so far is amazing and still obviously a beta so the final product shall improve…so the argument is null and void, win 7 and win 8 simply upgrade its a win win situation, i liked win 7 and hated win 8 but win 10 i absolutely love!!!!

  119. paul thomson says:

    win 10 very easy to navigate, friendly interface, more win 7 style than 8 but better menu, updating programmes not needed, try win 10 on a virtual machine to see for yourself, i beta tested win 8 and hated it also 8.1, win 7 was my all time fav, win 10 however blows it out of the water so looking forward to the final product and of course direct x12 🙂 Do not *** about win 10 unless actually tried it cos assure win 7 users will love it as i do!

  120. paul Thomson says:

    To add further, i switched to win 10 pro technical preview 9926 via windows update, it failed 3 times but added further driver updates to install was all, surprisingly unlike win 8 all my programmes still in the list and tested 90% of them so far and every single one works & probably better than when using my previous installation of win 7 ultimate, definitely my nvidia working much better without faults which were crashing for several months, i am happy i switched and doubt a single win 7 user let alone a win 8 or 8.1 user will not be happy with this os!!

  121. PickupSticks says:

    Apparently backporting DX 12 to Win7 would be quite a bit of work, but Microsoft is going to be shooting themselves in the foot if they don't.

    A majority of the gaming population is on Win 7.  This after trying repeatedly to get people to move to Win7 because everyone was holding out on WinXP.

    Despite the number of people defending keeping DX12 Win8 exclusive, it really is going to hurt Microsoft if they don't backport DX12 to Win7.  Why WOULDN'T you port it when a majority of your gaming population is on that system?  If DX 11.1 wasn't enough of a lure, do you honestly think 12 would be?

    And guess what happens, if 12 fails to lure people over to Win8/10, most developers are going to continue making DX11 games and ignore the extra time to develop in DX12.  It'll basically be the DX10 fiasco all over again.

  122. techienumber1 says:

    xp is dead now and it is sad too see but we must move on as win7 and just around the corner is win10 yes the glory is now win 10

    this nice piece of kit is truly a piece of work and from the failings in 7 8 and 8.1 it had to be made yes they would have done 9 but they decided to jump to 10 as the work on 9 was like a stick in the mud

    dx9 is old hat OS with the use of hardware for main streamers is a must so to have dx12 on the market well it could be good if they use the main framing use of shaders and shaders control extensions

    I use these in games that I want to improve but also if a game wont run on a system I use these to help the graphics card

    in graphics handling the main  use of shaders is to increase performance and help in graphic outlay this is that some cards cannot perform the effective run time effect   and the introducement of these type of patch shaders effect  can control and improve the runtime of game handling

  123. techienumber1 says:

    here again

    for those who was so stupid to buy win 8.1 there you go that repeat loop error because of the scripting loop is easy to undo but for the person who isn't computer qualified its a hell of a mess  

  124. rubi ccuno laura says:

    for those who was so stupid to buy win 8.1 there you go that repeat loop error because of the scripting loop is easy to undo but for the person who isn't computer qualified its a hell of a mess  

  125. samuel says:

    este programa es del asco jajajajajaja noki no

  126. sfghjdjghj says:

    sdghdfghjudytrtyrtyrfdkykusrr g rgfhrg

  127. Anonymous says:

    If I have an older generation Intel Core processor that doesn't support DX12, but a newer NVIDIA card that does support DX12, will I be able to use DX12 and/or see any performance improvements?

  128. Anonymous says:

    It better come to 8.1! Because I am not buying Microcraps spy on you Windows 10! I will go linux before I ever allow bill vaccine gates collect my info!

  129. Anonymous says:

    can someone check my review see if my overview of directx 12 features will be there.

    http://edselmalasig.tumblr.com

  130. Anonymous says:

    Wyatt: AFAIK all CPU's are DX12 compatible if they are good enough to run Windows 10.

    DirectX12 will make your graphicscard less dependent on your CPU.

    This means that your "old" CPU & "new" DX12 graphicscard will work better togheter with games if you activate DX12 instead of DX11.

  131. Anonymous says:

    Does the new DirectX12 will support my old quadro k1000m GPU? Thx

  132. Anonymous says:

    Will Windows 10 be able to run  DVD drive after upgrade from Windows 8.1 ?

  133. Anonymous says:

    will windows 10 be able to run dvd drive

  134. Anonymous says:

    [part-1/2]

    Mort>>Many games still use DirectX 9, to be able to support Windows XP, I agree completely with Johan, for DX12 to be a success it must at least run on Windows 7.

    – Really standart in current gamedev word – XP, no win7 standart!

    Win-XP/DX9 and paralell: LAST_many_used_ver(s) and some:parallel NIX/DX9-11…

    – and I am, and not I am only, not buy games with DX>9

    even on …pirated-CD,

    even …for free from interent,

    and I am ….live!

    And more – new, egoisticall maked games – really bad with compared early and nonegoisticall maked, it maybe with more triangles, but – empty. Its nt for gamers, its for new_MS-OS-version-market-lobby,,,

    and more, ahaha – live and very live – non MS/Intel  parallel architectures like Google Android OS, MACs, nix…

    Market and even free-games-market – big! And it continue …with or withot MS NextVersion "new" OS/DX…

    (About me: think – i am hate MS, becouse [not adequate cost in non USA, HW-word-occupacy, API/DX-word-ocupacy, lobby new API – old even MS OS non-compatible, licensing, Trojan, ets]-MS-politic, I am not MAC'oid, or NIX'oid or ets, I am view …and good sides MS, but like good products(nor fake-good or good but faked-"new"-version, fully old but with periodically need pay for as it all new, not some small part)… and also self-freedom! Nor total-electronic-control and for  example augmentated android-"peoples"… And i am dont wont be self – …HW for Android/Widows/NIX/MAC OS! Stay your hands from my freedom! )

  135. Anonymous says:

    Q: DX 12 go work for all old games or just newgen?

  136. Anonymous says:

    OpenGL > DirectX, without question.

    Open-Source, easier to use, cross-platform.  Not to mention expandability.  And a solid foundation.

    Why, again, do game projects continue to use DX?  Oh, that's right, Microsoft pulled ahead of OpenGL by using marketing fear schemes in the 1990s and early 2000s, even though OpenGL was years ahead in functionality.  It's like Apple versus Android.  Android is clearly the better choice but everyone likes the 'pretty looks' of Apple.

  137. Anonymous says:

    @fact

    For using that screenname your post doesn't have a single valid fact. It's more like FUD. OpenGL never was superior nor contained functionality not in DX. Also it was for a long time in devhell. (Primary reason why it fell so behind of DX)

    You invent and twist things, while ignoring inconvenient things.

    Is it hard to write post which is nearly 100% of inversion of reality and so wrong?

    Oh, and it never was easier then DX. Not once. Extension hell and problematic C-style API. And documentation still sucks hard.

  138. Anonymous says:

    @Klimax

    Actually, the opposite of your post holds true.  It is common knowledge that OpenGL has been a better, easier-to-use API than DirectX for a LONG time.

    On another note regarding FUD, and OpenGL, Microsoft left the OpenGL ARB in 2003, and later in 2005 declared the Windows Vista would remove support for OpenGL save for backwards compatibility with Windows XP applications.  The removal of OpenGL from the most widely used OS in the world leads to major panic.  OpenGL backwards-compatibility was to be layered on top of DirectX, and this buffer layer would cause a significant performance decrease to OpenGL.

    In all reality, OpenGL is a much better graphics library than DirectX, as of now and throughout the past.

    If I may also let you compare the code to render a triangle in both OpenGL, and DirectX, respectively.

    ———————————————————-

    #include <iostream>

    #include <GLFWglfw3.h>

    int main()

    {

    if (!glfwInit())

    std::cout << "Failed to initialize GLFW!" << std::endl;

    else

    std::cout << "Successfully initalized GLFW!" << std::endl;

    GLFWwindow *window;

    window = glfwCreateWindow(640, 480, "Window Title", NULL, NULL);

    if (window == NULL)

    std::cout << "Failed to create GLFW window!" << std::endl;

    else

    std::cout << "Successfully created GLFW window!" << std::endl;

    glfwMakeContextCurrent(window);

    glBegin(GL_TRIANGLES);

    glColor3f(0.1, 0.2, 0.3);

    glVertex3f(0, 0, 0);

    glVertex3f(1, 0, 0);

    glVertex3f(0, 1, 0);

    glEnd();

    glfwSwapBuffers(window);

    glfwPollEvents();

    system("PAUSE");

    return 0;

  139. Anonymous says:

    }

    ———————————————————-

    #include <windows.h>

    #include <d3d9.h>

    #pragma comment(lib, "d3d9.lib")

    // Definitions

    #define SCREEN_WIDTH 800

    #define SCREEN_HEIGHT 600

    #define FULLSCREEN false

    #define CUSTOMFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)

    LONG APIENTRY WindowProc(HWND hWnd, UINT message, WPARAM

    wParam, LPARAM lParam);

    //Function Prototypes

    void initWindow(HINSTANCE hInstance);

    HWND createWindow(HINSTANCE hInstance);

    void initD3D(HWND hWnd);

    void cleanD3D();

    void render_frame();

    void initGraphics();

    //Global Variables

    LPDIRECT3D9 d3d;

    LPDIRECT3DDEVICE9 d3ddev;

    LPDIRECT3DVERTEXBUFFER9 v_buffer = NULL;

    // Structures

    struct CUSTOMVERTEX {

    float x, y, z, RHW;

    DWORD color;

    };

    int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,

    LPSTR lpCmdLine, int nCmdShow)

    {

    HWND hWnd;

    initWindow(hInstance);

    hWnd = createWindow(hInstance);

    ShowWindow(hWnd, nCmdShow);

    initD3D(hWnd);

    MSG msg;

    while (true)

    {

    while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))

    {

    TranslateMessage(&msg);

    DispatchMessage(&msg);

    }

    if (msg.message == WM_QUIT)

    break;

    render_frame();

    }

    return msg.wParam;

    }

    LRESULT CALLBACK WindowProc(HWND hWnd, UINT message,

    WPARAM wParam, LPARAM lParam)

    {

    switch (message)

    {

    case WM_KEYDOWN:

    if (wParam == VK_ESCAPE)

    PostQuitMessage(0);

    break;

    case WM_DESTROY:

    PostQuitMessage(0);

    break;

    default:

    return DefWindowProc(hWnd, message, wParam, lParam);

    break;

    }

    return 0;

    }

    void initD3D(HWND hWnd)

    {

    d3d = Direct3DCreate9(D3D_SDK_VERSION);

    D3DPRESENT_PARAMETERS d3dpp;

    ZeroMemory(&d3dpp, sizeof(D3DPRESENT_PARAMETERS));

    if (FULLSCREEN)

    d3dpp.Windowed = false;

    else

    d3dpp.Windowed = true;

    d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;

    d3dpp.hDeviceWindow = hWnd;

    d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;

    d3dpp.BackBufferWidth = SCREEN_WIDTH;

    d3dpp.BackBufferHeight = SCREEN_HEIGHT;

    d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,

    D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &d3ddev);

    initGraphics();

    }

  140. Martin says:

    Hi devs. Please help me with a D3D12 problem I have. It is about Descriptor Tables and their mapping to Descriptor Heaps. I do not get it…

    community.amd.com/…/186893

  141. Josian says:

    Hi, that's great, but how about a task scheduler with more than 10ms precision or a dwm that doesn't randomly drop frames? I'm sure all this bureaucracy managing render states is great for the big boys, but it's a real pita for small devs like me.

  142. FYI says:

    Anyone who is asking if DX12 will be on Windows 7 or 8, your s.o.l.  It is only supported on Windows 10 as an "exclusive", so what this has turned into the same thing as the video games it is meant to run?  You want this cool extra feature, purchase this "dlc" at only $999.99 and you can have it (as long as your running our pre-approved hardware).

  143. Deneteus says:

    Here it is Holiday 2015 and we he still don't have Direct X 12. Anybody have any idea when exactly this will be released to the public? I own an XBOX One and it seems pretty useless without it. PS4 is killing their sales and Direct X 12 seems to be in DevHell. What gives?

  144. Newguy says:

    Ok, so where is the download link for this nice new shiny DX12?

  145. Waiting for Godot says:

    A ton of answers, a ton of words but no download link.