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.