{"video_id":"r0fgEVEgK_k","title":"WTF is going on with DX12 and Vulkan?","channel":"Linus Tech Tips","show":"Linus Tech Tips","published_at":"2017-05-06T14:53:29Z","duration_s":979,"segments":[{"start_s":0.24,"end_s":5.6,"text":"No Doom Vulcan benchmarks, eh? No DX12 or Vulcan. Oh, I see you guys followed","speaker":null,"is_sponsor":0},{"start_s":3.76,"end_s":9.519,"text":"NVIDIA's review guide to a te. Sad to see Linus Tech Tips benchmarking APIs,","speaker":null,"is_sponsor":0},{"start_s":7.759,"end_s":14.559,"text":"which is close to its end of life. What about RX480 Vulcan performance? Fine,","speaker":null,"is_sponsor":0},{"start_s":12.0,"end_s":18.48,"text":"let's talk about the new APIs, DirectX12 and Vulcan. How they work, how they","speaker":null,"is_sponsor":0},{"start_s":16.48,"end_s":29.439,"text":"perform, what they mean for the future, everything.","speaker":null,"is_sponsor":0},{"start_s":29.439,"end_s":35.52,"text":"FreshBooks is the super simple invoicing solution that lets you get organized,","speaker":null,"is_sponsor":0},{"start_s":33.2,"end_s":40.16,"text":"save time, and get paid faster. Click now to try it for free. Now, what is an","speaker":null,"is_sponsor":0},{"start_s":38.399,"end_s":44.239,"text":"API or application programming interface? In layman's terms, it's a","speaker":null,"is_sponsor":0},{"start_s":42.48,"end_s":48.559,"text":"facilitator. It handles requests similarly to a waiter at a restaurant","speaker":null,"is_sponsor":0},{"start_s":46.48,"end_s":54.16,"text":"taking orders. You can think of the customer as system A. System A wants to","speaker":null,"is_sponsor":0},{"start_s":51.52,"end_s":59.52,"text":"access some functionality or information that system B, which we'll call the","speaker":null,"is_sponsor":0},{"start_s":56.399,"end_s":61.44,"text":"kitchen, controls. Now, system B doesn't","speaker":null,"is_sponsor":0},{"start_s":59.52,"end_s":67.2,"text":"want to just let system A directly access all of its information. There are","speaker":null,"is_sponsor":0},{"start_s":64.159,"end_s":69.52,"text":"security and liability issues here. But","speaker":null,"is_sponsor":0},{"start_s":67.2,"end_s":74.52,"text":"not only that, having all these different customers trying to talk to","speaker":null,"is_sponsor":0},{"start_s":71.52,"end_s":76.96,"text":"the cook directly unless timed","speaker":null,"is_sponsor":0},{"start_s":74.52,"end_s":82.08,"text":"nearperfectly has the potential to be more confusing than helpful. Enter the","speaker":null,"is_sponsor":0},{"start_s":79.52,"end_s":86.479,"text":"waiter or in this analogy, the API. The waiter can serve the customer with a","speaker":null,"is_sponsor":0},{"start_s":83.84,"end_s":91.04,"text":"menu of subruine definitions, protocols, and tools that the customer can use to","speaker":null,"is_sponsor":0},{"start_s":88.56,"end_s":95.92,"text":"achieve his task. The customer then sends that request through the waiter to","speaker":null,"is_sponsor":0},{"start_s":93.119,"end_s":100.88,"text":"the kitchen where system B will act out those instructions and then send a","speaker":null,"is_sponsor":0},{"start_s":98.24,"end_s":106.96,"text":"response back to system A through the API. Clean, simple, and delicious.","speaker":null,"is_sponsor":0},{"start_s":104.88,"end_s":110.96,"text":"Theoretically, this is how it works, but they can be more bloated and therefore","speaker":null,"is_sponsor":0},{"start_s":109.2,"end_s":114.799,"text":"slow. Have you ever been to a restaurant that has like four different menus, one","speaker":null,"is_sponsor":0},{"start_s":113.2,"end_s":119.04,"text":"for just all the different kinds of freaking water with many pages","speaker":null,"is_sponsor":0},{"start_s":116.88,"end_s":123.52,"text":"containing a multitude of items which are essentially the same damn thing?","speaker":null,"is_sponsor":0},{"start_s":121.68,"end_s":128.16,"text":"Then you can relate to the frustration of not being able to find what you're","speaker":null,"is_sponsor":0},{"start_s":125.759,"end_s":131.52,"text":"looking for at all. Do you ever just want to throw the damn menus all in the","speaker":null,"is_sponsor":0},{"start_s":130.08,"end_s":136.239,"text":"air, stomp over to the kitchen, and scream, \"Can you just render me a","speaker":null,"is_sponsor":0},{"start_s":133.68,"end_s":140.48,"text":"chicken burger and some yam fries? Is that too much to ask?\"","speaker":null,"is_sponsor":0},{"start_s":138.64,"end_s":144.64,"text":"Okay, let's come back to that later. First, what are they used for? Lots of","speaker":null,"is_sponsor":0},{"start_s":142.64,"end_s":149.44,"text":"things. APIs can be used for web-based systems, operating systems, databases,","speaker":null,"is_sponsor":0},{"start_s":146.959,"end_s":153.599,"text":"software libraries, or in this case, computer hardware. But as important and","speaker":null,"is_sponsor":0},{"start_s":151.84,"end_s":158.319,"text":"ubiquitous as they are, they're not something the average user will ever","speaker":null,"is_sponsor":0},{"start_s":155.92,"end_s":163.36,"text":"interface with. So, why do we suddenly care so much about DirectX12 and Vulcan","speaker":null,"is_sponsor":0},{"start_s":161.28,"end_s":168.0,"text":"as selling points for games and video cards? Well, hype machine aside,","speaker":null,"is_sponsor":0},{"start_s":165.44,"end_s":172.879,"text":"DirectX11 and OpenGL, the predecessors to the shiny new graphics APIs, are","speaker":null,"is_sponsor":0},{"start_s":170.64,"end_s":177.4,"text":"rather bureaucratic. Like the complicated menu analogy, but worse","speaker":null,"is_sponsor":0},{"start_s":175.2,"end_s":182.48,"text":"because there are even more degrees of abstraction. There are many systems and","speaker":null,"is_sponsor":0},{"start_s":179.84,"end_s":188.48,"text":"devices talking to each other at a time, passing instructions around with many of","speaker":null,"is_sponsor":0},{"start_s":184.8,"end_s":190.72,"text":"them being redundant or outdated. It's","speaker":null,"is_sponsor":0},{"start_s":188.48,"end_s":195.68,"text":"just not as efficient. And there are other problems. For instance, one of","speaker":null,"is_sponsor":0},{"start_s":193.519,"end_s":201.44,"text":"your processor cores carries the burden of managing the vast majority of all of","speaker":null,"is_sponsor":0},{"start_s":199.04,"end_s":205.44,"text":"the critical time-sensitive tasks. One of the main ways that the new graphics","speaker":null,"is_sponsor":0},{"start_s":203.2,"end_s":210.319,"text":"APIs are more efficient is that they can use previously untapped hardware","speaker":null,"is_sponsor":0},{"start_s":207.68,"end_s":215.2,"text":"resources. Multi-core CPUs are a great example here. Look at this relatively","speaker":null,"is_sponsor":0},{"start_s":212.56,"end_s":221.04,"text":"realistic hypothetical scenario given to us by AMD. Thanks, guys. They show that","speaker":null,"is_sponsor":0},{"start_s":218.4,"end_s":226.879,"text":"OpenGL stacks all of the work of presenting to the user and processing","speaker":null,"is_sponsor":0},{"start_s":223.36,"end_s":229.68,"text":"the OpenGL driver onto core 1 along with","speaker":null,"is_sponsor":0},{"start_s":226.879,"end_s":234.799,"text":"a large portion of processing the OpenGL runtime and the largest portion of game","speaker":null,"is_sponsor":0},{"start_s":232.64,"end_s":239.04,"text":"code processing. This leaves little for cores 2 to four to work on, almost","speaker":null,"is_sponsor":0},{"start_s":236.72,"end_s":243.68,"text":"nothing for five and six to work on, and literally nothing for seven and 8. And","speaker":null,"is_sponsor":0},{"start_s":241.439,"end_s":246.959,"text":"for your reference, DirectX11 works in a very similar manner. Now, let's look at","speaker":null,"is_sponsor":0},{"start_s":245.519,"end_s":251.519,"text":"Vulcan. Though this is generally applicable to both of the new generation","speaker":null,"is_sponsor":0},{"start_s":249.04,"end_s":255.519,"text":"APIs, one of your processing cores is still responsible for a bigger part of","speaker":null,"is_sponsor":0},{"start_s":253.519,"end_s":260.4,"text":"the work than any of the others, but overall utilization is noticeably","speaker":null,"is_sponsor":0},{"start_s":258.079,"end_s":264.32,"text":"higher, even all the way down to core 8. Now, this is a hypothetical example, so","speaker":null,"is_sponsor":0},{"start_s":262.56,"end_s":268.8,"text":"I'm not going to spend time analyzing the exact improvements to the","speaker":null,"is_sponsor":0},{"start_s":266.4,"end_s":273.759,"text":"millisecond, but in a nutshell, Vulcan and Direct X12 do a much better job","speaker":null,"is_sponsor":0},{"start_s":271.44,"end_s":278.72,"text":"overall of sharing the load across all cores. Another key objective is to shed","speaker":null,"is_sponsor":0},{"start_s":276.24,"end_s":282.16,"text":"old layers of unneeded abstraction. They've done this by simplifying","speaker":null,"is_sponsor":0},{"start_s":280.24,"end_s":287.84,"text":"protocol routes, minimizing graphical driver overhead, focusing heavily on","speaker":null,"is_sponsor":0},{"start_s":284.88,"end_s":292.08,"text":"preventing timeheavy draw calls sent linearly to a single core of the CPU","speaker":null,"is_sponsor":0},{"start_s":290.24,"end_s":297.919,"text":"instead of parallelizing draw call packages in order to ease up on CPU load","speaker":null,"is_sponsor":0},{"start_s":295.12,"end_s":302.8,"text":"and let the GPU function as it should. Kind of like multiple waiters attending","speaker":null,"is_sponsor":0},{"start_s":300.16,"end_s":307.919,"text":"to the needs of each diner at a table instead of having one waiter with many","speaker":null,"is_sponsor":0},{"start_s":305.44,"end_s":312.479,"text":"plates on his ARM, dropping them off one at a time. Another key is that game","speaker":null,"is_sponsor":0},{"start_s":309.919,"end_s":317.44,"text":"developers can talk more directly to the GPU hardware. This is what is meant by","speaker":null,"is_sponsor":0},{"start_s":314.8,"end_s":322.24,"text":"the term lower level API. Think of it like having a manual transmission in a","speaker":null,"is_sponsor":0},{"start_s":319.68,"end_s":325.36,"text":"car instead of an automatic. But to all the gear heads out there watching this,","speaker":null,"is_sponsor":0},{"start_s":323.84,"end_s":330.32,"text":"don't just assume that all your DirectX11 and OpenGL games are outdated","speaker":null,"is_sponsor":0},{"start_s":328.0,"end_s":336.479,"text":"junk at this point. Bear in mind that poor operation of a manual transmission","speaker":null,"is_sponsor":0},{"start_s":333.12,"end_s":339.68,"text":"can be worse than an automatic or simply","speaker":null,"is_sponsor":0},{"start_s":336.479,"end_s":342.16,"text":"not better. Just because a game has","speaker":null,"is_sponsor":0},{"start_s":339.68,"end_s":347.68,"text":"Vulcan or DirectX12 support doesn't mean that efficiency and performance","speaker":null,"is_sponsor":0},{"start_s":344.759,"end_s":352.639,"text":"automatically improve. And this is true especially for games that were released","speaker":null,"is_sponsor":0},{"start_s":349.68,"end_s":358.16,"text":"with it early on. Though of course there are a few exceptions. For the best","speaker":null,"is_sponsor":0},{"start_s":355.12,"end_s":360.56,"text":"results, the new APIs need to be part of","speaker":null,"is_sponsor":0},{"start_s":358.16,"end_s":365.759,"text":"the core design of not only the game itself, but the underlying engine as","speaker":null,"is_sponsor":0},{"start_s":363.36,"end_s":372.08,"text":"well. And you do the math. It can take easily two, three, or even more years to","speaker":null,"is_sponsor":0},{"start_s":368.479,"end_s":373.68,"text":"make a good AAA title. And these APIs","speaker":null,"is_sponsor":0},{"start_s":372.08,"end_s":378.639,"text":"haven't even been available for that long. Meaning the implementation of","speaker":null,"is_sponsor":0},{"start_s":375.759,"end_s":384.0,"text":"these APIs was likely added to tick a marketing checkbox, appease a longtime","speaker":null,"is_sponsor":0},{"start_s":380.88,"end_s":385.919,"text":"partner, or hopefully, and very likely,","speaker":null,"is_sponsor":0},{"start_s":384.0,"end_s":390.88,"text":"just to gain the valuable experience that you can only get by working","speaker":null,"is_sponsor":0},{"start_s":387.919,"end_s":395.199,"text":"directly on them. But when more true DirectX12 and Vulcan titles drop, this","speaker":null,"is_sponsor":0},{"start_s":393.039,"end_s":399.52,"text":"level of control for developers has the potential to be awesome, but a little","speaker":null,"is_sponsor":0},{"start_s":397.52,"end_s":404.4,"text":"scary, too, because we're putting a lot of responsibility on the game and more","speaker":null,"is_sponsor":0},{"start_s":402.0,"end_s":409.12,"text":"specifically the game engine developers. And this is a major shift. So, while I","speaker":null,"is_sponsor":0},{"start_s":406.96,"end_s":414.479,"text":"just spent like four minutes telling you how interesting and important the new","speaker":null,"is_sponsor":0},{"start_s":411.039,"end_s":416.24,"text":"APIs are, in reality, the truly","speaker":null,"is_sponsor":0},{"start_s":414.479,"end_s":421.039,"text":"interesting component of the equation is going to be the new game engines that","speaker":null,"is_sponsor":0},{"start_s":418.319,"end_s":427.12,"text":"arise because of the freedoms afforded to them by the APIs, not necessarily the","speaker":null,"is_sponsor":0},{"start_s":424.72,"end_s":431.52,"text":"APIs themselves. And from game engine creators who care, the John Carmax and","speaker":null,"is_sponsor":0},{"start_s":429.36,"end_s":436.479,"text":"Tim Sweenies of the world, you'll get amazing new features unlocked by this","speaker":null,"is_sponsor":0},{"start_s":433.599,"end_s":441.12,"text":"additional performance and flexibility. But back to the scary bit from before,","speaker":null,"is_sponsor":0},{"start_s":439.199,"end_s":446.16,"text":"we're also putting this greater degree of control and the responsibility that","speaker":null,"is_sponsor":0},{"start_s":443.759,"end_s":452.0,"text":"comes with it in the hands of gaming companies who tell us things like 30fps","speaker":null,"is_sponsor":0},{"start_s":449.039,"end_s":456.639,"text":"is a good thing or that implement game physics effects that are reliant on the","speaker":null,"is_sponsor":0},{"start_s":454.479,"end_s":461.12,"text":"frame rate. That hasn't been a thing since like Intel 46, and that was","speaker":null,"is_sponsor":0},{"start_s":458.479,"end_s":465.36,"text":"arguable back then. That's inexcusable trash. Back to the APIs, though, since","speaker":null,"is_sponsor":0},{"start_s":463.12,"end_s":470.08,"text":"that's what we're really here for. So far, we've focused on similarities, but","speaker":null,"is_sponsor":0},{"start_s":467.44,"end_s":475.039,"text":"how do DX12 and Vulcan differ from each other? Let's start with DirectX12. A big","speaker":null,"is_sponsor":0},{"start_s":472.24,"end_s":479.44,"text":"focus for Microsoft this time around has been the introduction of their new LDA","speaker":null,"is_sponsor":0},{"start_s":477.12,"end_s":484.56,"text":"and MDA modes for multiple graphics cards. For a rundown on how those work,","speaker":null,"is_sponsor":0},{"start_s":482.24,"end_s":489.599,"text":"check out this video on WTF is going on with SLI. Along with this, Microsoft's","speaker":null,"is_sponsor":0},{"start_s":487.12,"end_s":494.8,"text":"vision to allow developers to support a mixture of graphics card models and even","speaker":null,"is_sponsor":0},{"start_s":492.24,"end_s":499.12,"text":"brands so the user can get as much power as possible out of their available","speaker":null,"is_sponsor":0},{"start_s":496.639,"end_s":503.68,"text":"hardware. Think of this more in terms of using your onboard graphics to get a","speaker":null,"is_sponsor":0},{"start_s":501.36,"end_s":509.039,"text":"little bit more oomph than a compelling reason to build this monstrosity. One of","speaker":null,"is_sponsor":0},{"start_s":506.96,"end_s":514.159,"text":"the ways this could work is split frame rendering or SFR. This is when a portion","speaker":null,"is_sponsor":0},{"start_s":511.84,"end_s":518.399,"text":"of the screen is rendered by one GPU and the rest is rendered by a second. But","speaker":null,"is_sponsor":0},{"start_s":516.24,"end_s":522.959,"text":"we'll have to wait and see how well this performs in the real world. So that's","speaker":null,"is_sponsor":0},{"start_s":521.039,"end_s":528.64,"text":"cool. But being a Microsoft product, DirectX12 will only function on Windows","speaker":null,"is_sponsor":0},{"start_s":525.519,"end_s":530.88,"text":"10 and Xbox. So Linux, OSX, Android","speaker":null,"is_sponsor":0},{"start_s":528.64,"end_s":535.12,"text":"enthusiasts, and actually even people who are still on Windows 7 and Windows 8","speaker":null,"is_sponsor":0},{"start_s":532.8,"end_s":539.2,"text":"are left out in the cold. Which brings us to Vulcan. Vulcan, brought to us by","speaker":null,"is_sponsor":0},{"start_s":537.36,"end_s":544.399,"text":"the Kronos Group, is the primary successor to OpenGL and is proudly","speaker":null,"is_sponsor":0},{"start_s":542.2,"end_s":549.36,"text":"cross-platform, working on everything we just mentioned and more. This is a huge","speaker":null,"is_sponsor":0},{"start_s":547.279,"end_s":554.32,"text":"deal for Steam OS in particular and Linux in general because it should bring","speaker":null,"is_sponsor":0},{"start_s":551.92,"end_s":560.24,"text":"with it a stronger support for a wider range of titles, something Linux has","speaker":null,"is_sponsor":0},{"start_s":556.48,"end_s":562.32,"text":"struggled with ever since, well, ever.","speaker":null,"is_sponsor":0},{"start_s":560.24,"end_s":567.92,"text":"So, Vulcan is a big deal. Google has been using it as Android's low-level API","speaker":null,"is_sponsor":0},{"start_s":564.48,"end_s":570.24,"text":"since 2015. And Dan Ginsburgg from Valve","speaker":null,"is_sponsor":0},{"start_s":567.92,"end_s":574.72,"text":"has talked about it on stage and said that Vulcan is the future. Although","speaker":null,"is_sponsor":0},{"start_s":572.959,"end_s":580.959,"text":"that's not surprising considering DirectX12 doesn't work on Steam OS and","speaker":null,"is_sponsor":0},{"start_s":577.92,"end_s":583.279,"text":"Valve Microsoft relationshipness has","speaker":null,"is_sponsor":0},{"start_s":580.959,"end_s":587.6,"text":"been getting a little tense lately. Moving on, there was one last thing that","speaker":null,"is_sponsor":0},{"start_s":585.6,"end_s":591.56,"text":"they had in common. Asynchronous compute. Now, this has been a highly","speaker":null,"is_sponsor":0},{"start_s":589.44,"end_s":596.72,"text":"controversial subject, making it unfortunately outside the scope of this","speaker":null,"is_sponsor":0},{"start_s":593.76,"end_s":600.32,"text":"video. But if you guys want to see a similar video dedicated to it, let me","speaker":null,"is_sponsor":0},{"start_s":598.8,"end_s":604.24,"text":"know in the comments down below. In a nutshell, though, it allows additional","speaker":null,"is_sponsor":0},{"start_s":602.08,"end_s":608.24,"text":"lightweight work to run in parallel alongside the main graphics thread. So,","speaker":null,"is_sponsor":0},{"start_s":606.32,"end_s":613.6,"text":"a specific lighting technique or post-process anti-aliasing method like","speaker":null,"is_sponsor":0},{"start_s":611.0,"end_s":618.16,"text":"TSSA. Now, this dynamic scheduling introduces some challenges for NVIDIA","speaker":null,"is_sponsor":0},{"start_s":615.68,"end_s":623.44,"text":"and AMD that did not exist in a more static ecosystem, but that's for them to","speaker":null,"is_sponsor":0},{"start_s":620.88,"end_s":628.32,"text":"worry about and for me to maybe cover in another video. That being said, it does","speaker":null,"is_sponsor":0},{"start_s":625.839,"end_s":632.72,"text":"seem that AMD has been pushing harder than NVIDIA, and it shows","speaker":null,"is_sponsor":0},{"start_s":630.279,"end_s":638.16,"text":"performance-wise as AMD is currently seeing more of a benefit than NVIDIA in","speaker":null,"is_sponsor":0},{"start_s":635.44,"end_s":643.2,"text":"the 3D Mark Time Spy benchmark, which allows you to switch asynchronous on or","speaker":null,"is_sponsor":0},{"start_s":640.8,"end_s":647.2,"text":"off. When reviewing the numbers for these APIs, you'll notice that they're","speaker":null,"is_sponsor":0},{"start_s":645.04,"end_s":651.76,"text":"kind of all over the place. Looking at Rise of the Tomb Raider, a DirectX game,","speaker":null,"is_sponsor":0},{"start_s":649.839,"end_s":657.76,"text":"we can see that while it does make a significant improvement at 1080p, once","speaker":null,"is_sponsor":0},{"start_s":654.48,"end_s":660.32,"text":"you step up a bit to 1440p or even 4K,","speaker":null,"is_sponsor":0},{"start_s":657.76,"end_s":664.079,"text":"things seem to fall apart a little bit, and","speaker":null,"is_sponsor":0},{"start_s":661.16,"end_s":667.92,"text":"DirectX11 actually pulls ahead. Hitman, on the other hand, did not share this","speaker":null,"is_sponsor":0},{"start_s":665.76,"end_s":672.0,"text":"funky scaling pattern and seemed to improve when using DirectX12, or at the","speaker":null,"is_sponsor":0},{"start_s":669.68,"end_s":676.16,"text":"very least stay the same across all the graphics cards I tested it with, which","speaker":null,"is_sponsor":0},{"start_s":673.76,"end_s":682.56,"text":"should represent GP 104 with the GTX 1080, GP 106 with the GTX 1060 6 GB","speaker":null,"is_sponsor":0},{"start_s":679.76,"end_s":687.92,"text":"edition for the NVIDIA side, and the power of AMD's new Polaris architecture","speaker":null,"is_sponsor":0},{"start_s":684.88,"end_s":690.0,"text":"with the RX 480. Moving on to Ashes of","speaker":null,"is_sponsor":0},{"start_s":687.92,"end_s":694.88,"text":"the Singularity. This game is like half benchmark, half game. So, it shows the","speaker":null,"is_sponsor":0},{"start_s":692.72,"end_s":699.76,"text":"biggest improvement by far when using DirectX12 instead of DirectX11. And for","speaker":null,"is_sponsor":0},{"start_s":697.839,"end_s":703.68,"text":"the Vulcan fans out there, I've heard there will be a patch coming for you as","speaker":null,"is_sponsor":0},{"start_s":701.519,"end_s":708.64,"text":"well. One great additional piece of insight that Ash's displays at the end","speaker":null,"is_sponsor":0},{"start_s":705.76,"end_s":713.36,"text":"of their benchmark is CPU frames versus GPU frames. What this essentially means","speaker":null,"is_sponsor":0},{"start_s":711.279,"end_s":718.72,"text":"is how many frames your CPU could potentially push compared to what your","speaker":null,"is_sponsor":0},{"start_s":715.8,"end_s":723.36,"text":"GPU actually pushed. So, if the CPU number is higher, you could get more","speaker":null,"is_sponsor":0},{"start_s":720.959,"end_s":726.8,"text":"overall FPS with a graphics card upgrade. Notice that when we run the","speaker":null,"is_sponsor":0},{"start_s":725.04,"end_s":731.279,"text":"more CPU focused version of the benchmark, the numbers are at par","speaker":null,"is_sponsor":0},{"start_s":728.959,"end_s":737.76,"text":"because now you're intentionally CPU bottlenecked. Moving on to Vulcan. Doom","speaker":null,"is_sponsor":0},{"start_s":734.72,"end_s":740.32,"text":"numbers for the NVIDIA side are just a","speaker":null,"is_sponsor":0},{"start_s":737.76,"end_s":746.24,"text":"mess. For the GTX 1080, Vulcan was similar to Tomb Raider worse at 4K than","speaker":null,"is_sponsor":0},{"start_s":743.12,"end_s":747.68,"text":"OpenGL 4.5. dropping down to 1080p,","speaker":null,"is_sponsor":0},{"start_s":746.24,"end_s":752.24,"text":"however, and it's a whole different story with massive improvements shown.","speaker":null,"is_sponsor":0},{"start_s":750.0,"end_s":757.44,"text":"The RX 480 does show the performance trend that we would expect, improving","speaker":null,"is_sponsor":0},{"start_s":754.88,"end_s":761.839,"text":"considerably when running the Vulcan API and utilizing asynchronous compute","speaker":null,"is_sponsor":0},{"start_s":759.44,"end_s":766.639,"text":"shaders. Good. So, the features sound pretty great. The performance, depending","speaker":null,"is_sponsor":0},{"start_s":764.16,"end_s":772.24,"text":"on your configuration, is probably good, but might not be great. What about","speaker":null,"is_sponsor":0},{"start_s":769.44,"end_s":776.48,"text":"supported games? On the DirectX12 side of things, the list seems rather","speaker":null,"is_sponsor":0},{"start_s":774.079,"end_s":780.8,"text":"populated and there is a fair number of titles on the way that are claiming they","speaker":null,"is_sponsor":0},{"start_s":778.639,"end_s":786.8,"text":"will support it. But this doesn't mean that DirectX12 integration hasn't been","speaker":null,"is_sponsor":0},{"start_s":783.519,"end_s":789.68,"text":"riddled with issues. Quantum Break was a","speaker":null,"is_sponsor":0},{"start_s":786.8,"end_s":793.839,"text":"mess. Tomb Raider's backend barely even functioned for a while to the point","speaker":null,"is_sponsor":0},{"start_s":791.519,"end_s":799.44,"text":"where they added a warning if you enable it. and the upcoming DSX Mankind","speaker":null,"is_sponsor":0},{"start_s":797.04,"end_s":803.279,"text":"Divided, which I think is out now. It was supposed to launch with support for","speaker":null,"is_sponsor":0},{"start_s":801.279,"end_s":806.959,"text":"it, and that's been pulled for a while, so they can fix it up. And Vulcan side","speaker":null,"is_sponsor":0},{"start_s":805.279,"end_s":811.36,"text":"of things is rough, too. Their support list has four items on it. One of which","speaker":null,"is_sponsor":0},{"start_s":809.519,"end_s":817.32,"text":"is upcoming. One of which is Dota Freaking 2. Not sure about you, but I","speaker":null,"is_sponsor":0},{"start_s":814.399,"end_s":822.48,"text":"sure needed more FPS in Dota on my DirectX12 capable hardware. Another is","speaker":null,"is_sponsor":0},{"start_s":820.56,"end_s":827.68,"text":"the rather wonderful single player game from 2014. Possibly not that many","speaker":null,"is_sponsor":0},{"start_s":825.36,"end_s":832.16,"text":"current players, unfortunately. And then lastly, we have Doom. A beautiful","speaker":null,"is_sponsor":0},{"start_s":830.079,"end_s":837.36,"text":"looking game with proper built-in support and asynchronous compute","speaker":null,"is_sponsor":0},{"start_s":834.16,"end_s":839.839,"text":"capabilities. Cool, but that's singular.","speaker":null,"is_sponsor":0},{"start_s":837.36,"end_s":843.839,"text":"So there you go. In conclusion, the future is bright with physics and AI","speaker":null,"is_sponsor":0},{"start_s":842.0,"end_s":848.079,"text":"heavy games being among the most exciting things we have to look forward","speaker":null,"is_sponsor":0},{"start_s":845.279,"end_s":852.16,"text":"to, which is awesome. But the present is more a light at the end of the tunnel","speaker":null,"is_sponsor":0},{"start_s":849.839,"end_s":856.72,"text":"situation. Get excited for new game engines that support these APIs and be","speaker":null,"is_sponsor":0},{"start_s":854.24,"end_s":863.44,"text":"on the lookout for awesome new game engine technology that will likely arise","speaker":null,"is_sponsor":0},{"start_s":860.079,"end_s":866.079,"text":"from the improvements made here. This","speaker":null,"is_sponsor":0},{"start_s":863.44,"end_s":871.12,"text":"may finally signal the return of our old cores for gaming episodes. Maybe we'll","speaker":null,"is_sponsor":0},{"start_s":868.72,"end_s":877.6,"text":"finally have an episode that doesn't end in four cores is the best. Because by","speaker":null,"is_sponsor":0},{"start_s":874.48,"end_s":881.32,"text":"that time, your $1,700 10 core Extreme","speaker":null,"is_sponsor":0},{"start_s":877.6,"end_s":883.639,"text":"Edition will finally matter.","speaker":null,"is_sponsor":0},{"start_s":881.32,"end_s":888.959,"text":"Maybe. Today, we're highlighting the K7XX limited edition Ruby Red","speaker":null,"is_sponsor":0},{"start_s":886.24,"end_s":893.279,"text":"headphones, of course, from Massdrop. They also have a bunch of other cool","speaker":null,"is_sponsor":0},{"start_s":890.959,"end_s":897.199,"text":"things that you can buy like with other people so that the price goes down and","speaker":null,"is_sponsor":0},{"start_s":895.519,"end_s":900.959,"text":"if more people buy it, the price goes down further till a logical minimum. And","speaker":null,"is_sponsor":0},{"start_s":899.519,"end_s":904.959,"text":"it it's it's really cool. You should check out Massrop regardless. The","speaker":null,"is_sponsor":0},{"start_s":902.8,"end_s":909.6,"text":"products we're showcasing today is the same specwise as the K7XX headphones","speaker":null,"is_sponsor":0},{"start_s":908.079,"end_s":914.0,"text":"that Lionus reviewed and you guys all liked sometime last year. You can check","speaker":null,"is_sponsor":0},{"start_s":911.36,"end_s":916.8,"text":"that video out here or all over my I don't know where it's going to be. The","speaker":null,"is_sponsor":0},{"start_s":915.44,"end_s":921.839,"text":"real difference, however, is that this run uses red accents on the ear cups and","speaker":null,"is_sponsor":0},{"start_s":919.88,"end_s":925.76,"text":"headband. Remember that this is a limited drop, so if you want a pair,","speaker":null,"is_sponsor":0},{"start_s":923.92,"end_s":931.199,"text":"you're going to have to act relatively fast. These headphones were configured","speaker":null,"is_sponsor":0},{"start_s":928.24,"end_s":935.44,"text":"by Massdrop and manufactured by AKG. Just a note for international orders, if","speaker":null,"is_sponsor":0},{"start_s":932.959,"end_s":939.36,"text":"you're outside of the US, there's a $25 shipping and handling fee put on top.","speaker":null,"is_sponsor":0},{"start_s":937.199,"end_s":943.92,"text":"And that's it. Check out Massdrop. Thanks for watching, guys. If this video","speaker":null,"is_sponsor":0},{"start_s":941.959,"end_s":947.36,"text":"sucked, but if you liked it, you know what to do. So, hit the like button, get","speaker":null,"is_sponsor":0},{"start_s":945.36,"end_s":949.68,"text":"subscribed, do all that kind of stuff. Uh, check out the link in the video","speaker":null,"is_sponsor":0},{"start_s":948.56,"end_s":953.759,"text":"description down below where you can buy like GPUs or something. I guess we talked about those in this video. Also,","speaker":null,"is_sponsor":0},{"start_s":952.8,"end_s":960.72,"text":"check out the link in the video description down below to buy a shirt and go to the forum to talk about","speaker":null,"is_sponsor":0},{"start_s":958.0,"end_s":964.639,"text":"everything I said in this video. There's might be something wrong. File the crap","speaker":null,"is_sponsor":0},{"start_s":963.12,"end_s":969.92,"text":"out of me for that and then I'll learn and that'll be good.","speaker":null,"is_sponsor":0},{"start_s":966.839,"end_s":972.16,"text":"But, man, anyways, watch this video","speaker":null,"is_sponsor":0},{"start_s":969.92,"end_s":975.36,"text":"which is about WTF is going with SLI because we're making a series of these","speaker":null,"is_sponsor":0},{"start_s":973.36,"end_s":979.68,"text":"now. Although continuing to do these might kill me, so I don't know.","speaker":null,"is_sponsor":0}],"full_text":"No Doom Vulcan benchmarks, eh? No DX12 or Vulcan. Oh, I see you guys followed NVIDIA's review guide to a te. Sad to see Linus Tech Tips benchmarking APIs, which is close to its end of life. What about RX480 Vulcan performance? Fine, let's talk about the new APIs, DirectX12 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 nearperfectly 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 subruine 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 DirectX12 and Vulcan as selling points for games and video cards? Well, hype machine aside, DirectX11 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 four to work on, almost nothing for five and six to work on, and literally nothing for seven and 8. And for your reference, DirectX11 works in a very similar manner. Now, let's look at Vulcan. 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, Vulcan and Direct X12 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 timeheavy 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 gear heads out there watching this, don't just assume that all your DirectX11 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 Vulcan or DirectX12 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 longtime 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 DirectX12 and Vulcan 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 Carmax and Tim Sweenies 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 30fps 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 Vulcan 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, OSX, Android enthusiasts, and actually even people who are still on Windows 7 and Windows 8 are left out in the cold. Which brings us to Vulcan. Vulcan, 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 Steam OS 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, Vulcan is a big deal. Google has been using it as Android's low-level API since 2015. And Dan Ginsburgg from Valve has talked about it on stage and said that Vulcan is the future. Although that's not surprising considering DirectX12 doesn't work on Steam OS and Valve Microsoft relationshipness 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, a specific lighting technique or post-process anti-aliasing method like TSSA. 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 3D Mark 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 DirectX11 actually pulls ahead. Hitman, on the other hand, did not share this funky scaling pattern and seemed to improve when using DirectX12, or at the very least stay the same across all the graphics cards I tested it with, which should represent GP 104 with the GTX 1080, GP 106 with the GTX 1060 6 GB 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 DirectX12 instead of DirectX11. And for the Vulcan fans out there, I've heard there will be a patch coming for you as well. One great additional piece of insight that Ash's 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 Vulcan. Doom numbers for the NVIDIA side are just a mess. For the GTX 1080, Vulcan 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 Vulcan API and utilizing asynchronous compute shaders. Good. So, the features sound pretty great. The performance, depending on your configuration, is probably good, but might not be great. What about supported games? On the DirectX12 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 DirectX12 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 DSX 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 Vulcan 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 DirectX12 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 till a logical minimum. And it it's it's really cool. You should check out Massrop regardless. The products we're showcasing today is the same specwise as the K7XX headphones that Lionus 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 ear cups 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. So, hit the like button, get subscribed, do all that kind of stuff. Uh, 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's might be something wrong. File the crap out of me for that and then I'll learn and that'll be good. But, man, anyways, watch this video which is about WTF is going with SLI because we're making a series of these now. Although continuing to do these might kill me, so I don't know."}