 No Doom Vulcan benchmarks, eh? No DX12 or Vulcan? Oh, I see you guys followed Nvidia's review guide to a T. Sad to see Linus Tech Tips benchmarking APIs, which is close to its end of life. What about RX 480 Vulcan performance? Fine! Let's talk about the new APIs, DirectX 12 and Vulcan. How they work, how they perform, what they mean for the future. Everything. FreshBooks is the super simple invoicing solution that lets you get organized, save time and get paid faster. Click now to try it for free. Now what is an API or Application Programming Interface? In layman's terms, it's a facilitator. It handles requests similarly to a waiter at a restaurant taking orders. You can think of the customer as System A. System A wants to access some functionality or information that System B, which we'll call the kitchen, controls. Now System B doesn't want to just let System A directly access all of its information. There are security and liability issues here. But not only that, having all these different customers trying to talk to the cook directly, unless timed near perfectly, has the potential to be more confusing than helpful. Enter the waiter, or in this analogy, the API. The waiter can serve the customer with a menu of subroutine definitions, protocols and tools that the customer can use to achieve his task. The customer then sends that request through the waiter to the kitchen where System B will act out those instructions and then send a response back to System A through the API. Clean, simple and delicious. Theoretically, this is how it works, but they can be more bloated and therefore slow. Have you ever been to a restaurant that has like four different menus, one for just all the different kinds of freaking water, with many pages containing a multitude of items which are essentially the same damn thing? Then you can relate to the frustration of not being able to find what you're looking for at all. Do you ever just want to throw the damn menus all in the air, stomp over to the kitchen and scream, Can you just render me a chicken burger and some yam fries? Is that too much to ask? Okay, let's come back to that later. First, what are they used for? Lots of things. APIs can be used for web-based systems, operating systems, databases, software libraries, or in this case, computer hardware. But as important and ubiquitous as they are, they're not something the average user will ever interface with. So why do we suddenly care so much about DirectX 12 and Vulkan as selling points for games and video cards? Well, hype machine aside, DirectX 11 and OpenGL, the predecessors to the shiny new graphics APIs, are rather bureaucratic. Like the complicated menu analogy, but worse, because there are even more degrees of abstraction. There are many systems and devices talking to each other at a time, passing instructions around with many of them being redundant or outdated. It's just not as efficient. And there are other problems. For instance, one of your processor cores carries the burden of managing the vast majority of all of the critical time-sensitive tasks. One of the main ways that the new graphics APIs are more efficient is that they can use previously untapped hardware resources. Multi-core CPUs are a great example here. Look at this relatively realistic hypothetical scenario given to us by AMD. Thanks, guys. They show that OpenGL stacks all of the work of presenting to the user and processing the OpenGL driver onto Core 1, along with a large portion of processing the OpenGL runtime and the largest portion of game code processing. This leaves little for Cores 2 to 4 to work on, almost nothing for 5 and 6 to work on, and literally nothing for 7 and 8. And for your reference, DirectX 11 works in a very similar manner. Now let's look at Vulkan, though this is generally applicable to both of the new generation APIs. One of your processing cores is still responsible for a bigger part of the work than any of the others. But overall utilization is noticeably higher, even all the way down to Core 8. Now this is a hypothetical example, so I'm not going to spend time analyzing the exact improvements to the millisecond, but in a nutshell, Vulkan and DirectX 12 do a much better job overall of sharing the load across all cores. Another key objective is to shed old layers of unneeded abstraction. They've done this by simplifying protocol routes, minimizing graphical driver overhead, focusing heavily on preventing time-heavy draw calls sent linearly to a single core of the CPU, instead of parallelizing draw call packages in order to ease up on CPU load and let the GPU function as it should, kind of like multiple waiters attending to the needs of each diner at a table, instead of having one waiter with many plates on his arm dropping them off one at a time. Another key is that game developers can talk more directly to the GPU hardware. This is what is meant by the term lower-level API. Think of it like having a manual transmission in a car instead of an automatic. But to all the gearheads out there watching this, don't just assume that all your DirectX 11 and OpenGL games are outdated junk at this point. Bear in mind that poor operation of a manual transmission can be worse than an automatic, or simply not better. Just because a game has Vulkan or DirectX 12 support doesn't mean that efficiency and performance automatically improve. And this is true especially for games that were released with it early on, though of course there are a few exceptions. For the best results, the new APIs need to be part of the core design of not only the game itself, but the underlying engine as well. And you do the math. It can take easily two, three, or even more years to make a good AAA title. And these APIs haven't even been available for that long. Meaning, the implementation of these APIs was likely added to tick a marketing checkbox, appease a long-time partner, or hopefully, and very likely, just to gain the valuable experience that you can only get by working directly on them. But when more true DirectX 12 and Vulkan titles drop, this level of control for developers has the potential to be awesome. But a little scary too, because we're putting a lot of responsibility on the game, and more specifically, the game engine developers. And this is a major shift. So while I just spent like four minutes telling you how interesting and important the new APIs are in reality, the truly interesting component of the equation is going to be the new game engines that arise because of the freedoms afforded to them by the APIs, not necessarily the APIs themselves. And from game engine creators who care, the John Carmacks and Tim Sweeney's of the world, you'll get amazing new features unlocked by this additional performance and flexibility. But back to the scary bit from before, we're also putting this greater degree of control and the responsibility that comes with it in the hands of gaming companies who tell us things like 30 FPS is a good thing, or that implement game physics effects that are reliant on the frame rate. That hasn't been a thing since like Intel 46, and that was arguable back then. That's inexcusable trash. Back to the APIs though, since that's what we're really here for. So far we've focused on similarities, but how do DX12 and Vulkan differ from each other? Let's start with DirectX12. A big focus for Microsoft this time around has been the introduction of their new LDA and MDA modes for multiple graphics cards. For a rundown on how those work, check out this video on WTF is going on with SLI. Along with this, Microsoft's vision to allow developers to support a mixture of graphics card models and even brands so the user can get as much power as possible out of their available hardware. Think of this more in terms of using your onboard graphics to get a little bit more oomph than a compelling reason to build this monstrosity. One of the ways this could work is split frame rendering, or SFR. This is when a portion of the screen is rendered by one GPU and the rest is rendered by a second. But we'll have to wait and see how well this performs in the real world. So that's cool, but being a Microsoft product, DirectX12 will only function on Windows 10 and Xbox. So Linux, OS X, Android enthusiasts, and actually even people who are still on Windows 7 and 8 are left out in the cold. Which brings us to Vulkan. Vulkan, brought to us by the Kronos Group, is the primary successor to OpenGL and is proudly cross-platform, working on everything we just mentioned and more. This is a huge deal for SteamOS in particular and Linux in general, because it should bring with it a stronger support for a wider range of titles, something Linux has struggled with ever since, well, ever. So Vulkan is a big deal. Google has been using it as Android's low-level API since 2015, and Dan Ginsberg from Valve has talked about it on stage and said that Vulkan is the future. Although that's not surprising considering DirectX12 doesn't work on SteamOS and Valve-Microsoft relationship-ness has been getting a little tense lately. Moving on, there was one last thing that they had in common, asynchronous compute. Now this has been a highly controversial subject, making it unfortunately outside the scope of this video. But if you guys want to see a similar video dedicated to it, let me know in the comments down below. In a nutshell though, it allows additional lightweight work to run in parallel alongside the main graphics thread, so specific lighting technique or post-process anti-aliasing method like TSSAA. Now this dynamic scheduling introduces some challenges for NVIDIA and AMD that did not exist in a more static ecosystem, but that's for them to worry about and for me to maybe cover in another video. That being said, it does seem that AMD has been pushing harder than NVIDIA and it shows performance-wise, as AMD is currently seeing more of a benefit than NVIDIA in the 3DMark Time Spy benchmark, which allows you to switch asynchronous on or off. When reviewing the numbers for these APIs, you'll notice that they're kind of all over the place. Looking at Rise of the Tomb Raider, a DirectX game, we can see that while it does make a significant improvement at 1080p, once you step up a bit to 1440p or even 4K, things seem to fall apart a little bit and DirectX 11 actually pulls ahead. Hitman on the other hand did not share this funky scaling pattern and seemed to improve when using DirectX 12, or at the very least stay the same across all the graphics cards I tested it with, which should represent GP104 with the GTX 1080, GP106 with the GTX 1060 6GB edition for the NVIDIA side, and the power of AMD's new Polaris architecture with the RX 480. Moving on to Ashes of the Singularity. This game is like half benchmark, half game, so it shows the biggest improvement by far when using DirectX 12 instead of DirectX 11. And for the Vulkan fans out there, I've heard there will be a patch coming for you as well. One great additional piece of insight that Ashes displays at the end of their benchmark is CPU frames versus GPU frames. What this essentially means is how many frames your CPU could potentially push compared to what your GPU actually pushed. So if the CPU number is higher, you could get more overall FPS with a graphics card upgrade. Notice that when we run the more CPU focused version of the benchmark, the numbers are at par, because now you're intentionally CPU bottlenecked. Moving on to Vulkan. Doom numbers for the NVIDIA side are just a mess. For the GTX 1080, Vulkan was, similar to Tomb Raider, worse at 4K than OpenGL 4.5, dropping down to 1080p, however, and it's a whole different story with massive improvements shown. The RX 480 does show the performance trend that we would expect, improving considerably when running the Vulkan API and utilizing asynchronous compute shaders. Good. So the features sound pretty great. The performance, depending on your configuration, is probably good, but it might not be great. What about supported games? On the DirectX 12 side of things, the list seems rather populated, and there is a fair number of titles on the way that are claiming they will support it. But this doesn't mean that DirectX 12 integration hasn't been riddled with issues. Quantum Break was a mess. Tomb Raider's backend barely even functioned for a while, to the point where they added a warning if you enable it, and the upcoming Deus Ex Mankind Divided, which I think is out now, it was supposed to launch with support for it, and that's been pulled for a while so they can fix it up. And Vulkan's side of things is rough, too. Their support list has four items on it, one of which is upcoming, one of which is Dota freaking 2, not sure about you, but I sure needed more FPS in Dota on my DirectX 12-capable hardware. Another is the rather wonderful single-player game from 2014, possibly not that many current players, unfortunately. And then lastly we have Doom, a beautiful looking game with proper built-in support and asynchronous compute capabilities. Cool, but that's singular. So there you go. In conclusion, the future is bright, with physics and AI-heavy games being among the most exciting things we have to look forward to, which is awesome. But the present is more a light at the end of the tunnel situation. Get excited for new game engines that support these APIs, and be on the lookout for awesome new game engine technology that will likely arise from the improvements made here. This may finally signal the return of our old Cores for Gaming episodes. Maybe we'll finally have an episode that doesn't end in, Four Cores is the best. Because by that time, your $1,700 10-core Extreme Edition will finally matter. Maybe. Today we're highlighting the K7XX Limited Edition Ruby Red headphones, of course, from Massdrop. They also have a bunch of other cool things that you can buy, like, with other people so that the price goes down, and if more people buy it, the price goes down further to a logical minimum, and it's really cool. You should check out Massdrop regardless. The product we're showcasing today is the same spec-wise as the K7XX headphones that Linus reviewed, and you guys all liked sometime last year. You can check that video out here or all over my... I don't know where it's going to be. The real difference, however, is that this run uses red accents on the earcups and headband. Remember that this is a limited drop, so if you want a pair, you're going to have to act relatively fast. These headphones were configured by Massdrop and manufactured by AKG. Just a note for international orders, if you're outside of the US, there's a $25 shipping and handling fee put on top, and that's it. Check out Massdrop. Thanks for watching, guys. If this video sucked, but if you liked it, you know what to do. Hit the like button, get subscribed, do all that kind of stuff. Check out the link in the video description down below where you can buy, like, GPUs or something. I guess we talked about those in this video. Also check out the link in the video description down below to buy a shirt and go to the forum to talk about everything I said in this video. There might be something wrong. Flay the crap out of me for that, and then I'll learn and that'll be good. But, oh, man. Anyways, watch this video, which is about WTF is going on with SLI, because we're making a series of these now, although continuing to do these might kill me. So, I don't know.