WEBVTT

00:00:00.060 --> 00:00:05.700
with just a few clicks comrade Stingers

00:00:03.419 --> 00:00:12.360
asynchronous reprojection demo can make 30 frames per second gameplay look and

00:00:08.760 --> 00:00:14.639
feel like 240 frames per second it's

00:00:12.360 --> 00:00:18.960
completely free takes almost no additional system resources and the

00:00:16.740 --> 00:00:23.340
effect is so convincing that we fooled even the most seasoned gamers in our

00:00:21.060 --> 00:00:28.500
office we're still above 240. I'm gonna say 120. yeah I'm gonna say like 140

00:00:25.500 --> 00:00:30.000
maybe even maybe higher I have no idea

00:00:28.500 --> 00:00:33.600
this is cool I don't know what you've done holy

00:00:32.099 --> 00:00:39.540
hahaha just your initial impression is

00:00:36.000 --> 00:00:41.940
obviously fake right haha April fools no

00:00:39.540 --> 00:00:47.399
it's December and asynchronous reprojection is not only real but it's

00:00:44.760 --> 00:00:51.840
actually a mature technology there are literally hundreds of games going back

00:00:49.559 --> 00:00:56.760
half a decade that are using this Tech to boost perceived performance

00:00:54.480 --> 00:01:01.559
they're just not the kind of games that you typically play on a monitor

00:00:59.219 --> 00:01:06.360
but why not right the idea to use it on desktop came from

00:01:04.379 --> 00:01:11.880
two clicks Philip and it's one of those ideas that is so brilliant in hindsight

00:01:08.939 --> 00:01:17.100
that it seems totally obvious like this segue to our sponsor ridge

00:01:14.880 --> 00:01:20.939
ridge wallet has redefined the traditional wallet with its compact

00:01:18.479 --> 00:01:24.720
frame and RFID blocking plates that's right the Bulge in your pants shouldn't

00:01:22.619 --> 00:01:29.240
be from your wallet use offer code Linus to save 10 and get free worldwide

00:01:26.759 --> 00:01:29.240
shipping

00:01:35.720 --> 00:01:41.939
you can download comrade Stinger's Unity project to play around with for yourself

00:01:39.780 --> 00:01:46.560
and I would recommend that you do so but first let me explain what's going on

00:01:43.740 --> 00:01:51.240
here this slider in the corner allows us to control the frame rate of our game

00:01:48.900 --> 00:01:55.560
while the rest of these parameters are to apply and compare the performance and

00:01:53.880 --> 00:02:00.600
rendering tricks that make up asynchronous reprojection let's go a

00:01:58.259 --> 00:02:04.860
little slower this time we'll start with Native 240 FPS rendering

00:02:03.119 --> 00:02:08.280
I know this isn't going to fully come through in a YouTube video but it looks

00:02:07.140 --> 00:02:14.879
smooth right it is but let's say we can't afford an

00:02:11.580 --> 00:02:17.879
RTX 4090 and our GPU can only reliably

00:02:14.879 --> 00:02:20.099
generate 30 real frames per second

00:02:17.879 --> 00:02:24.480
drag this down over here set to render at 30 FPS and

00:02:22.140 --> 00:02:29.940
obviously this is a degraded experience with visible

00:02:26.459 --> 00:02:33.239
choppiness tearing and input leg

00:02:29.940 --> 00:02:36.300
then with the push of a button it

00:02:33.239 --> 00:02:38.760
instantly feels like 240 FPS again even

00:02:36.300 --> 00:02:42.180
though we're still running at 30 frames per second the first step to show you

00:02:40.739 --> 00:02:47.519
guys what's happening is to go even further and stop rendering new frames

00:02:44.459 --> 00:02:49.620
altogether then enable asynchronous

00:02:47.519 --> 00:02:54.120
reprojection interesting

00:02:51.120 --> 00:02:57.239
this is a great demonstration of how the

00:02:54.120 --> 00:03:00.000
display and user input can be refreshed

00:02:57.239 --> 00:03:03.959
without receiving a new rendered frame from the GPU

00:03:01.860 --> 00:03:08.760
this obviously isn't a great gaming experience given that we're looking at a

00:03:05.580 --> 00:03:10.680
static picture in a black void and

00:03:08.760 --> 00:03:14.940
we can't even move our character but it's very smooth

00:03:12.720 --> 00:03:19.080
let's take things a step further pun intended by breaking the on-screen

00:03:16.800 --> 00:03:23.040
objects into strips and sorting them by their distance from the player we can

00:03:21.060 --> 00:03:29.340
actually guess where they're going to end up relative to the player's input

00:03:25.920 --> 00:03:32.040
again without rendering a new frame at

00:03:29.340 --> 00:03:38.159
zero FPS things get pretty messy pretty fast but watch what happens if we have

00:03:34.379 --> 00:03:41.760
even a little bit more than that not bad

00:03:38.159 --> 00:03:44.819
for 10 frames per second but the black

00:03:41.760 --> 00:03:46.860
void is still there especially if we

00:03:44.819 --> 00:03:51.060
whip the camera around and in some ways it's even more distracting that's where

00:03:49.200 --> 00:03:55.799
the next little bit of black magic comes in the area of your vision that is sharp

00:03:53.819 --> 00:04:00.780
enough to read text or recognize a human face is only about six to seven degrees

00:03:58.560 --> 00:04:06.780
everything else is peripheral vision which is relatively blurry but highly

00:04:03.480 --> 00:04:09.480
sensitive to motion that's why this is

00:04:06.780 --> 00:04:13.680
so annoying even if I'm still in The Sweet Spot of your field of view but

00:04:11.340 --> 00:04:18.780
there's an easy fix you can simply stretch out any object that's at the

00:04:16.320 --> 00:04:23.699
edge of the last rendered frame until a new update is received and you can see

00:04:21.299 --> 00:04:27.960
that by filling that void with something even just a loose approximation of

00:04:26.220 --> 00:04:32.479
what's supposed to be there the perceived image quality jumps

00:04:29.639 --> 00:04:32.479
dramatically

00:04:33.000 --> 00:04:38.100
no Wild no of course at only 10 frames

00:04:36.900 --> 00:04:43.500
per second we're going to be able to break the illusion pretty easily even by

00:04:40.500 --> 00:04:46.740
moving the mouse moderately quickly but

00:04:43.500 --> 00:04:49.979
going back to the demo we did before if

00:04:46.740 --> 00:04:52.080
we boost our frame rate back up to 30

00:04:49.979 --> 00:04:59.340
all of a sudden it's far less noticeable unless we look and

00:04:56.340 --> 00:05:01.800
move at the same time then we can kind

00:04:59.340 --> 00:05:08.520
of notice that judder but let's say we ratcheted it up to 60 FPS

00:05:04.800 --> 00:05:08.520
oh now

00:05:08.639 --> 00:05:16.139
things are getting pretty convincing here then the question is if this has

00:05:13.680 --> 00:05:23.880
been around for years and can turn the 60 FPS that your mid-range GPU turns out

00:05:18.900 --> 00:05:26.100
into a 240 FPS experience why on Earth

00:05:23.880 --> 00:05:30.479
haven't we been using it if I had to guess I'd say because it just didn't

00:05:27.960 --> 00:05:35.160
occur to anyone that we wanted it myself included I mean when was the last time

00:05:32.639 --> 00:05:40.380
Gamers asked for a compromised form of rendering the outrage over driver cheats

00:05:38.100 --> 00:05:45.360
would have been immediate so async re-projection well it wasn't developed

00:05:42.419 --> 00:05:50.940
to help Gamers save money or to help GPU manufacturers get more FPS on low end

00:05:48.120 --> 00:05:55.800
carts it was developed out of necessity in the early days of VR it was already

00:05:53.940 --> 00:06:01.500
clear that being Tethered to a stationary expensive PC was always going

00:05:59.639 --> 00:06:06.060
to be a friction point for Mass adoption why does it look like the inside of a

00:06:03.360 --> 00:06:10.560
vagina but mobile chipsets had nowhere near the performance they needed to

00:06:07.740 --> 00:06:13.680
render 90 plus frames per second at greater than full HD resolutions

00:06:12.000 --> 00:06:18.360
performance hasn't been perfect especially when there's a lot of like

00:06:15.780 --> 00:06:23.460
particle effects on screen so they had to do something to bring out lightweight

00:06:21.080 --> 00:06:28.620
battery-powered headsets that also didn't cause users to projectile vomit

00:06:25.620 --> 00:06:30.539
within minutes of putting them on and

00:06:28.620 --> 00:06:34.860
asynchronous reprojection and over the years it's gotten really good

00:06:32.940 --> 00:06:37.740
don't take my word for it though let's take a more detailed look at the

00:06:36.300 --> 00:06:43.440
reactions of some of the gamers in our office I have over 900 hours in Apex

00:06:40.500 --> 00:06:49.440
Legends and over 300 hours in vermintide too I am a competitive FPS player I rank

00:06:47.580 --> 00:06:52.460
in top five to ten percent on apex Legends globally and I've been a gamer

00:06:51.300 --> 00:06:58.440
for basically as long as I can remember I

00:06:55.380 --> 00:07:01.740
play a lot of video games from FPS to

00:06:58.440 --> 00:07:02.780
puzzle to anything I play games on my

00:07:01.740 --> 00:07:08.520
computer I game a lot and I'm terrible at it I

00:07:06.419 --> 00:07:12.720
play a lot of games I've helped develop some games hi I'm Mark

00:07:11.819 --> 00:07:20.639
um I'm gonna say 120. no 90. I would say

00:07:17.940 --> 00:07:24.960
one 140. yeah I'm just saying like the trails like I'm seeing things rent take

00:07:22.440 --> 00:07:29.639
a while to refresh on the screen in terms of like frame rate it doesn't feel

00:07:27.539 --> 00:07:35.759
that much different I want to say it's worse Anthony what are you using

00:07:33.120 --> 00:07:39.479
foveated rendering my God wants to say that this is the

00:07:37.500 --> 00:07:43.160
least responsive so far to me this feels like 60. has anything changed

00:07:41.819 --> 00:07:49.199
no no I can't I can't tell it feels

00:07:46.620 --> 00:07:54.180
feels the same uh yeah like I can very clearly tell with the with the shadow

00:07:51.599 --> 00:07:58.860
here just kind of how blurry those edges are for a split second from a technical

00:07:56.220 --> 00:08:03.720
perspective I'm intrigued I'm incredibly intrigued this is this is super neat

00:08:01.139 --> 00:08:08.460
it's so hard to know if if I'm thinking I'm seeing something

00:08:05.639 --> 00:08:12.300
because I'm looking for it or if there actually is something different like if

00:08:10.500 --> 00:08:17.280
you really quickly snap between like the player model and that kind of cyan uh

00:08:15.360 --> 00:08:21.720
Cube there's definitely a lot of blur going on at like really high speed yeah

00:08:19.500 --> 00:08:25.800
it's basically the same as last I can't really tell I want to say it feels

00:08:23.580 --> 00:08:29.699
better this seems a bit better again if I had to guess about frame rate

00:08:27.720 --> 00:08:34.440
I have a suspicion that all the frame rates are the same

00:08:31.139 --> 00:08:37.800
um when you go really fast it's bad that

00:08:34.440 --> 00:08:40.620
is incredibly annoying I would not want

00:08:37.800 --> 00:08:45.240
to play like that whoa okay clearly

00:08:43.080 --> 00:08:49.019
things are things are things are popping in and out of existence I don't know is

00:08:46.860 --> 00:08:53.160
real anymore uh I don't know if it's just like you know you know how there's

00:08:51.060 --> 00:08:56.100
um systems where basically whenever something's being looked at is being

00:08:54.540 --> 00:08:59.279
rendered but as soon as you're looking away it gets called or it's not it's

00:08:57.779 --> 00:09:03.740
just not rendered anymore um that's what this feels like but like

00:09:00.959 --> 00:09:08.760
on a slow mode laughs

00:09:05.580 --> 00:09:11.240
oh oh no no

00:09:08.760 --> 00:09:11.240
oh

00:09:12.660 --> 00:09:17.640
what do you mean Better or Worse we'll have the mostly uncut version of those

00:09:16.080 --> 00:09:22.140
sessions up on Floatplane.com if you want to see more it's pretty funny but

00:09:19.440 --> 00:09:26.220
the gist is that not a single one of our test subjects correctly identified the

00:09:24.120 --> 00:09:31.440
frame rate no matter what we set it to in fact a surprising number of our

00:09:28.440 --> 00:09:33.480
respondents thought that 60fps felt and

00:09:31.440 --> 00:09:37.380
looked worse than 30 because they started actively looking for the

00:09:34.980 --> 00:09:42.060
artifacts now to be fair to our test subjects they're not idiots it's really

00:09:40.200 --> 00:09:47.700
hard to tell in person and that's part of what makes this test so interesting

00:09:44.279 --> 00:09:50.040
but why is it so hard to tell the reason

00:09:47.700 --> 00:09:54.300
lies in the relationship between frame rate and refresh rate

00:09:52.320 --> 00:09:59.820
frame rate is a measure of how many complete images per second are generated

00:09:56.940 --> 00:10:03.839
by your GPU the higher your frames per second the sooner you're going to get

00:10:01.740 --> 00:10:08.640
the most up-to-date information say for example on the position of your

00:10:05.339 --> 00:10:11.820
opponents that also includes though the

00:10:08.640 --> 00:10:13.740
results of your inputs that improves the

00:10:11.820 --> 00:10:18.720
perceived responsiveness of the gaming experience and is one of the reasons why

00:10:15.779 --> 00:10:23.760
a high frame rate is so desirable but the frame rate almost never

00:10:21.360 --> 00:10:28.260
corresponds to the refresh rate of your monitor that is how many times per

00:10:25.980 --> 00:10:31.620
second it can actually show you a new image

00:10:29.519 --> 00:10:36.180
I understand why people confuse the two sometimes they are similar in the sense

00:10:33.959 --> 00:10:40.080
that the higher the refresh rate the sooner you see the results of your mouse

00:10:37.500 --> 00:10:45.000
movements and your key presses so they have a similar impact on your gaming

00:10:41.700 --> 00:10:47.220
experience but the refresh rate doesn't

00:10:45.000 --> 00:10:51.180
work to give you new information unless you've got an updated frame so that they

00:10:49.140 --> 00:10:54.959
aren't quite the same the conventional wisdom for competitive PC Gamers before

00:10:53.279 --> 00:10:58.320
the days of high refresh rate displays was that you wanted to push the frame

00:10:56.579 --> 00:11:02.339
rate to at least double of what your display was capable of that should give

00:11:00.420 --> 00:11:06.000
you an edge over your opponents by having slightly more up-to-date

00:11:03.839 --> 00:11:11.100
information on the screen that usually meant targeting about 120 FPS the idea

00:11:09.180 --> 00:11:15.600
was that by the time your monitor is finished displaying the current frame

00:11:12.839 --> 00:11:19.019
your GPU will have created a more up-to-date frame for the next one than

00:11:17.399 --> 00:11:23.700
it might have if both of them were locked to 60. this is what we're seeing

00:11:21.000 --> 00:11:30.060
with async reprojection but in the other direction the GPU is running slower but

00:11:27.480 --> 00:11:34.800
the user inputs are displayed as soon as the display can show them even if the

00:11:32.339 --> 00:11:40.500
GPU hasn't caught up yet that means that regardless of the real frame rate input

00:11:37.620 --> 00:11:43.680
from the mouse remains responsive and the most common complaint from our test

00:11:42.060 --> 00:11:47.880
subjects while moving their view at these ridiculously low frame rates

00:11:45.540 --> 00:11:51.600
wasn't even that the game was laggy or unresponsive but instead it was the

00:11:50.040 --> 00:11:55.560
stretching along the edges of our screen our test subject's reactions by the way

00:11:53.880 --> 00:12:00.720
were great when we showed them how the sausage was made

00:11:57.540 --> 00:12:04.440
what is this what the hell is happening

00:12:00.720 --> 00:12:04.440
oh my God what

00:12:05.579 --> 00:12:12.980
oh my God whoa oh okay oh my God this is

00:12:10.800 --> 00:12:17.700
next level it goes to show how frame rate and

00:12:15.779 --> 00:12:22.260
perception are so heavily tied together like looking at that I you you would

00:12:20.399 --> 00:12:25.980
never have guessed that it was it was a 30 before obviously it's not perfect I

00:12:24.540 --> 00:12:29.880
could get a much better experience with like fancy Hardware but I mean if you

00:12:27.839 --> 00:12:33.240
can enable this on a lower tier GPU or something that's like pretty crazy and

00:12:31.920 --> 00:12:38.579
what's really cool about this is that it's not just a placebo having more

00:12:35.820 --> 00:12:42.600
responsive inputs even if your frame rate isn't that high can make a big

00:12:40.920 --> 00:12:48.180
difference when you're tracking a moving Target say in an FPS game and this is

00:12:45.959 --> 00:12:53.160
just the beginning comrade Stinger put this demo together in literally an

00:12:50.519 --> 00:12:58.680
evening which means that edge cases like kiting a character model are still

00:12:56.639 --> 00:13:04.920
pretty ugly thanks to all the visual anomalies but imagine if the major GPU

00:13:03.000 --> 00:13:08.760
and game engine designers were to build support for this into their products

00:13:06.660 --> 00:13:13.320
NVIDIA is using machine learning to generate whole artificial frames in dlss

00:13:11.279 --> 00:13:17.519
3.0 and that could end up seeming downright silly if all they had to do

00:13:15.240 --> 00:13:21.839
was use their machine learning to guess at what should be just outside that

00:13:19.800 --> 00:13:25.800
frame that hasn't been generated yet or what might be on the side of that sliced

00:13:23.579 --> 00:13:31.440
up model that you're kiting around however it's not a Magic Bullet either

00:13:28.920 --> 00:13:37.260
even if asynchron projections artifacts could be nearly eliminated racing games

00:13:34.160 --> 00:13:39.480
mobas and other games with mostly fixed

00:13:37.260 --> 00:13:43.920
viewpoints might actually benefit more from traditional rendering at variable

00:13:41.760 --> 00:13:50.040
refresh rates like with g-sync or freesync so like variable refresh rates

00:13:47.519 --> 00:13:53.880
or frame generation for that matter this technique is just one tool in the

00:13:51.899 --> 00:13:59.100
developer's toolbox that if it catches on and matures could be used to improve

00:13:56.459 --> 00:14:04.620
responsiveness and here's another cool one also minimize power draw imagine

00:14:02.040 --> 00:14:09.660
this on a future console like a Nintendo switch 2 or a steam deck too you know a

00:14:07.560 --> 00:14:15.300
device where maybe you could run at 60fps but you're routinely capped to 30

00:14:12.480 --> 00:14:20.100
in order to save battery thumbsticks and especially gyro controls could be made

00:14:17.399 --> 00:14:24.899
far more responsive with almost no increase in power drop suffice it to say

00:14:22.680 --> 00:14:28.380
I'm extremely excited to see where this and Technologies like it will take us in

00:14:26.639 --> 00:14:33.420
the future especially in a world where GPU prices have risen to the point where

00:14:31.019 --> 00:14:37.380
they're just unreasonable and gaming on top tier Hardware has become less and

00:14:35.339 --> 00:14:42.000
less accessible just like I'm always accessible to segue to our sponsor

00:14:39.620 --> 00:14:45.420
pulseway when your network devices require attention wouldn't it be nice to

00:14:43.800 --> 00:14:48.959
have control while you're out running errands instead of having to sit there

00:14:47.220 --> 00:14:52.380
in front of a computer well pulseway offers a convenient solution to these

00:14:50.760 --> 00:14:55.980
sorts of dilemmas their all-in-one platform allows you to monitor all your

00:14:54.060 --> 00:15:00.120
servers computers and network devices from any mobile phone or tablet so you

00:14:58.260 --> 00:15:03.660
can respond quickly no matter where you are whether that's running scripts

00:15:01.560 --> 00:15:07.260
checking CPU temperatures pushing through updates or even running

00:15:05.100 --> 00:15:10.980
Diagnostics on that pesky printer that never cooperates you know which one I'm

00:15:08.940 --> 00:15:14.880
talking about all of them they also offer a hefty Suite of automation

00:15:12.480 --> 00:15:17.639
options for critical it tasks or simply shutting down your home systems when The

00:15:16.380 --> 00:15:21.540
Babysitter needs help putting the kids to bed it works with Windows macOS and

00:15:19.680 --> 00:15:24.480
even Linux which means more control for you and since you can do all of this on

00:15:23.100 --> 00:15:28.079
the go you'll have more time for the things you love while pulseway handles

00:15:26.160 --> 00:15:31.920
the rest try a no commitment free trial of pulse Way by following the link down

00:15:29.880 --> 00:15:37.199
below if you guys enjoyed this go check out our recent video on dlss 3.0 for

00:15:34.320 --> 00:15:40.500
more on this kind of frame rate might not really matter in the future

00:15:38.459 --> 00:15:47.240
technology it's a little rough around the edges but hey Solo's dlss and FSR

00:15:43.500 --> 00:15:47.240
1.0 and look how far they've come
