WEBVTT

00:00:00.000 --> 00:00:04.920
Typically, when we get excited about improvements to gaming performance, it's because of some

00:00:04.920 --> 00:00:09.480
new piece of hardware like a high refresh rate monitor or a graphics card that's beefier

00:00:09.480 --> 00:00:16.800
than a porterhouse steak. But Microsoft has come out with a new piece of software that looks like it should give

00:00:16.800 --> 00:00:21.080
your visuals a significant boost in terms of both quality and performance.

00:00:21.080 --> 00:00:27.780
It's called DirectX 12 Ultimate, and despite the tacky gamer sounding name, it features

00:00:27.780 --> 00:00:31.220
technical optimizations that should really make a difference.

00:00:31.220 --> 00:00:34.420
The first big change is about ray tracing.

00:00:34.420 --> 00:00:38.900
You can learn more about ray tracing in general in this video, but in a nutshell, it's a

00:00:38.900 --> 00:00:44.540
technique in which your GPU can track where light rays are going in a scene to give much

00:00:44.540 --> 00:00:47.700
more realistic light and shadow effects than you'd otherwise get.

00:00:47.700 --> 00:00:53.460
Reflections look amazing. Ray tracing support first became widespread on consumer graphics cards with NVIDIA's

00:00:53.460 --> 00:00:56.980
release of their high-end RTX 2000 series.

00:00:56.980 --> 00:01:02.780
But DirectX 12 Ultimate will not only support ray tracing on both NVIDIA and AMD cards,

00:01:02.780 --> 00:01:07.300
but it should lighten the load on your system to make the technology more accessible to

00:01:07.300 --> 00:01:11.300
all. Now, developers are going to have more control over the process instead of just letting the

00:01:11.300 --> 00:01:16.820
system decide how to schedule ray tracing through a process called inline ray tracing.

00:01:16.820 --> 00:01:21.180
Essentially, this makes the processing of simpler lighting effects more efficient, since

00:01:21.260 --> 00:01:25.980
the developer is telling the GPU exactly when to trace a certain effect instead of forcing

00:01:25.980 --> 00:01:29.620
the GPU to spend processing resources trying to decide on its own.

00:01:29.620 --> 00:01:33.460
The DX12 Ultimate API also eases the load on your CPU.

00:01:33.460 --> 00:01:37.940
As originally, the shaders on your GPU had to talk to the CPU to start ray tracing a

00:01:37.940 --> 00:01:44.620
scene. Now, your GPU can just do this on its own, allowing for faster processing overall, hopefully

00:01:44.620 --> 00:01:50.980
leading to ray tracing support in more games with lower hardware requirements for an eye-pleasing

00:01:51.780 --> 00:01:56.780
experience. Moving on, mesh shading should also prevent your GPU from rendering parts of the scene

00:01:56.780 --> 00:02:02.860
that you'll never even see. Suppose you're playing a high-end AAA title with thousands of detailed objects in each

00:02:02.860 --> 00:02:08.900
scene. That's a lot for your GPU to handle, as it might have to draw trillions of little triangles

00:02:08.900 --> 00:02:14.340
every frame in extreme cases. But your eye can only detect so much detail, right?

00:02:14.340 --> 00:02:17.380
Imagine you're looking at a faraway mountain, for example.

00:02:17.380 --> 00:02:20.900
You're not going to be able to make out every little crag in rock formation.

00:02:20.900 --> 00:02:25.220
And mesh shading takes this idea and applies it to computer graphics.

00:02:25.220 --> 00:02:29.660
Specialized shaders first figure out which objects even need to be rendered at all, then

00:02:29.660 --> 00:02:34.500
every object that makes the cut is assigned a certain level of detail.

00:02:34.500 --> 00:02:39.420
Close by objects are rendered at high detail levels, with more triangles, with objects

00:02:39.420 --> 00:02:43.700
that are farther away getting lower levels of detail and fewer triangles.

00:02:43.700 --> 00:02:49.020
Even several orders of magnitude fewer, depending on how far away it is, with the level of detail

00:02:49.020 --> 00:02:53.780
getting adjusted dynamically as objects move closer or farther away.

00:02:53.780 --> 00:02:57.580
Although assigning objects different levels of detail is a technique that's been around

00:02:57.580 --> 00:03:03.060
for a while, mesh shading allows your GPU to process triangles in chunks instead of

00:03:03.060 --> 00:03:08.140
individually, allowing level of detail computations to happen far more quickly.

00:03:08.140 --> 00:03:17.620
Next up, let's talk about sampler feedback. This is a method that allows more static parts of an image to be shaded from scratch less frequently,

00:03:17.620 --> 00:03:22.100
meaning that your GPU will take shading data from previous frames and apply it to subsequent

00:03:22.100 --> 00:03:25.140
frames without having to reprocess everything.

00:03:25.140 --> 00:03:30.380
What a waste of work. So instead of having to do tons of work on every object, every frame, an object might

00:03:30.380 --> 00:03:35.500
only be reshaded every second, third, or even tenth frame, depending on the environment.

00:03:35.500 --> 00:03:40.860
A related feature called variable rate shading only applies detailed shading to parts of

00:03:40.860 --> 00:03:45.340
the screen that you're actively looking at with your eyes, as your eyes peripheral vision

00:03:45.340 --> 00:03:48.660
starts to blur quickly from the center of your field of view, and you can learn much

00:03:48.660 --> 00:03:52.940
more about variable rate shading in our dedicated video right up here.

00:03:52.940 --> 00:03:57.780
So all this means that DirectX12 Ultimate is primarily concerned with stopping your

00:03:57.780 --> 00:04:03.020
GPU from wasting energy rendering crap that you simply won't see, freeing up computational

00:04:03.020 --> 00:04:07.060
power that could be used to create more realistic game worlds.

00:04:07.060 --> 00:04:11.260
And not only will we see it on PC, but it will be supported on the Xbox Series X too.

00:04:11.260 --> 00:04:15.660
So hopefully we'll see developers leverage it in lots of upcoming titles.

00:04:15.660 --> 00:04:19.700
After all, why would you want to make your GPU do unnecessary work like some kind of

00:04:19.700 --> 00:04:23.100
power hungry boss?

00:04:23.100 --> 00:04:28.500
I know how that is. So thanks for watching guys. If you like this video, give us a thumbs up, hit subscribe, and be sure to leave a message

00:04:28.500 --> 00:04:33.020
in the comments section with your suggestion for topics that we should cover in the future.
