I wrote an article about DX12 for PC Gamer. It discusses the differences between high-level and low-level graphics APIs and what that means for gaming. It also features some insight gained from talking to Dan Baker at Oxide games about a few related topics, which was a big help.
I went a bit wild in terms of technical detail in the middle section of it, but it could be up your alley if you read my blog (and hopefully also interest some PC Gamer visitors).
Congrats on getting more articles published in PC Gamer durante. Keep up the great work!
Excellent article breaking down what DirectX 12 is, how it differs from previous DirectX versions, and what benefits it brings compared to high-level languages. I especially liked how you broke down what the new API does into understandable terms and illustrations. So long as someone’s willing to dabble in more technical explanations of things, I’d highly recommend your article as its the most succinct version I’ve seen yet.
I’d also like to ask how you’d respond to people in the emulation scene who are really into the AZDO (Almost-Zero Driver Overhead) philosophy on OpenGL and insist there won’t be any appreciable difference. From what you’re writing, it seems to me like they’re missing out on being able to more easily emulate CPU/GPU sync functionality since the application, and thus the computer’s CPU, ultimately determine what command lists go to the GPU when, not the driver.
Modern OpenGL AZDO is actually pretty impressive in principle – at least if you go by tech demos and theoretical capabilities. But no one ever really built an engine around it.
Generally, high-end modern OpenGL has a driver consistency issue for production use which is hard to overcome — this will hopefully be fixed by Vulkan.
In any case, I do very much believe that low-level APIs do offer advantages for emulation even beyond OpenGL 4.x, especially if you are emulating relatively modern platforms like e.g. Xenia tries to do.
I suspect that would warrant its own article or blog post – one which I think would be quite useful for the emulation community so they have can have a more clear-cut understanding of what DirectX 12 is and is not in perspective of their projects.