Control launched earlier this week, and it's a great game—it scored 88 in our review. I've also put together a full suite of Control benchmarks to see what sort of hardware it needs to run well at various settings. The short summary: you'll need a beefy graphics card, and ray tracing doubles down on the beef. From a technology perspective, regardless of how you think Control looks, it does some cool stuff. Specifically, it's the most complete implementation of ray tracing (via DirectX Raytracing, aka DXR) that we've seen to date. It also changes the way Nvidia's DLSS is implemented, in a good way. I want to talk about both, and I've got a lot of images and even a video or two to help.
First, there's the ray tracing effects. The first game to use DXR was Battlefield 5, and you got exactly one effect: reflections. Next to launch was Metro Exodus, with ray traced global illumination (aka, indirect lighting) and some ambient occlusion calculations. Then, roughly six months after launch, Shadow of the Tomb Raider added ray traced shadows—too bad most people had long since moved on to other games.
In each case, it's not too difficult to argue that ray tracing made the visuals better and/or more correct, but the performance hit was pretty painful, and for many people it's hard to justify the improved graphics at the cost of framerates and responsiveness—especially in a multiplayer game like Battlefield 5.
Now along comes Control, and it has five ray tracing options: reflections, transparent reflections, indirect diffuse lighting, contact shadows, and debris. The last one is more of an enhancement to the others, though—it just determines whether certain debris shows up in the RT effects or not. As expected, turning everything on pretty much tanks performance. Even the mighty RTX 2080 Ti barely manages to break 60 fps with all five ray tracing effects enabled.
What do these ray tracing effects actually do, and are they worth the performance hit? Let's take each in turn.
[Note: I've got a bunch of galleries showing the same scene with all ray tracing settings enabled, and then each in turn disabled, except for RT debris which doesn't normally show up except in battles.]
Examining Control's ray tracing effects
Ray traced reflections show up in a lot of areas of Control. There are the usual puddles on the floor—and I have to wonder just how long it takes for water to evaporate in the Oldest House, and why isn't the janitor doing his job properly? There are also shiny floors, walls, and other objects, because the janitor actually is pretty good at cleaning when he gets around to it. Finally, there are mirrors and windows, the latter being a bit of a special case.
In the above comparisons, you can see that turning on ray traced reflections only affects the non-transparent surfaces. That sort of makes sense, considering the next option specifically addresses this. Screen space reflections are disabled if you turn this on, which makes sense as both are doing the same thing.
Enabling RT reflections drops performance by about 9-11 percent on RTX graphics cards. That happens even in areas where there aren't any immediately obvious reflections, likely because the engine still has to spend time determining whether reflections are needed. Or perhaps there's a potential to optimize performance more.
Transparent reflections are similar to the above, but they're only calculated for windows. Basically, it's a partial reflection like you'd see in the real world. In the office areas with lots of glass windows, the effect is particularly striking. What's more, the performance hit isn't even that steep—enabling transparent reflections only drops framerates by around 5 percent on an RTX card (depending on the scene, obviously, though even with no windows visible I still measured a consistent 3-5 percent dip).
One question that comes up is why SSR can't be used for transparent reflections. The main difficulty with SSR is that it operates on the screen space—things that are already visible on the screen. Basically, it's some cool math to approximate reflections, and it works really well for things like puddles on the ground reflecting the sky. What it doesn't do very well is vertical objects facing the camera.
There are ways to approximate transparent reflections—or even to fully calculate them—without ray tracing, but the performance hit can be large, and Control opts to not even bother as far as I can tell. If you want windows that you can see through while also seeing a partial reflection in this game, you have to use ray tracing.
The name on this one is a bit tricky—indirect diffuse lighting. Are we talking about global illumination, or ambient occlusion, or maybe a bit of both? I'm not quite sure. You can see in the images that it affects both lighting and shadows to varying degrees, and it does seem to overlap a bit with SSAO (though that remains a togglable option).
What I do know is that in testing, indirect diffuse lighting tends to be the most demanding of the ray tracing options in Control. That's usually true of global illumination, as it often requires multiple rays cast for each pixel on the screen. The performance drop is about 13 percent this time on an RTX card, and it seems to be a pretty consistent hit regardless of the scene.
The final ray tracing option (not counting debris) is contact shadows. The idea is to calculate more accurate shadows for where objects touch other objects—like chair legs on a floor. The thing is, the place I notice these contact shadow the most are on some objects where they look wrong, like tape on the floor. Check out this comparison video:
But it's not always bad, and there are other rooms and places where contact shadows produce a good (and correct) result. As with the other ray tracing options, the performance hit is pretty large. Enabling RT contact shadows drops performance around 7-9 percent.
The bigger problem is that each of the individual ray tracing options is cumulative. 10 percent here, 5 percent there, 15 percent elsewhere … and there's apparently a base level of performance hit just for the game engine to even begin thinking about ray tracing. Even if you take the high estimate on the above (so 11, 5, 13, and 9 percent), that should only result in performance dropping about 35 percent. In practice, enabling all the ray tracing effects drops performance by closer to 45 percent—almost half the non-RT result.
Say hello to my DLSS friend
There's hope … sort of. Nvidia's DLSS algorithm can let you run at a lower resolution and then upscale that while also doing an anti-aliasing filter. Nvidia has been pushing DLSS use since its RTX cards first launched, because as noted above, the performance requirements for ray tracing are quite steep.
In previous games, DLSS options have been somewhat limited. Battlefield 5 for example only let you use DLSS at 1440p and 4K if you had a 2080 or 2080 Ti. There were reasons for that (namely, sometimes the DLSS calculations would take longer than simply rendering at a higher resolution and skipping DLSS), but Nvidia has apparently changed how DLSS works with Control.
For one, DLSS is available at all resolutions, regardless of your hardware. If you have an RTX 2080 Ti and you want to use DLSS at 720p, that's your choice. I suspect you'll hit other bottlenecks, and the output definitely won't look as nice if you go too low. On the other hand, rendering at 853x480 or even 640x360 should mean your graphics card won't choke. (For the record, at maximum quality the 2080 Ti does improve from around 112 fps at 720p without DLSS to 135 fps at 720p with DLSS.)
Second, and perhaps more importantly, you can now see the rendering resolution, which was always a bit vague before. Control gives you two resolution choices. The higher one uses a horizontal and vertical render resolution that's two-thirds that of the output resolution, and the second uses half the horizontal and vertical resolution. In terms of pixels, that means rendering either 0.44 times as many pixels, or 0.25 times as many pixels. Obviously there's going to be some tradeoff in image quality, but equally obvious is that only ray tracing a quarter as many pixels and then upscaling is going to be far less taxing.
Provided you're not bottlenecked by some other factor (which is generally going to be the case at 1440p or 4K, and probably at 1080p as well on anything short of the 2080 Ti), DLSS at the higher rendering resolution can boost performance by about 70-80 percent. Go with the lower rendering resolution and performance can easily double and in some cases (eg, 4K) nearly triple.
So how does DLSS look? If you take a still screenshot with and without ray tracing, even at the higher resolution it's pretty easy to tell which screenshots have DLSS enabled and which don't. The thing is, most of the time in a game you're not staring at static pixels trying to spot changes—everything is in motion, and with lots of explosions or other pyrotechnics, slightly blurrier images don't really stand out.
Check out the above gallery, and open the various images fullscreen (the little arrows icon in the corner, which isn't available on smartphones). Then watch this video showing DLSS on vs. off (again, fullscreen is best).
That video is of course recompressed (from a 50Mbps source that was also compressed), but I've looked at the original source and I've played Control plenty. Other than a few very small artifacts, I wouldn't normally notice the difference between DLSS being on or running at the native resolution—other than the higher framerates, of course. Actually, there are areas that I would say DLSS even looks a bit better than MSAA. I've intentionally left out the information on which half of the video has DLSS on and which has it off, and I'd love to hear guesses in the comments about which is which.
Is ray tracing snake oil, or is it the future of gaming?
Nvidia has received a lot—and I mean, a lot—of flak about its RTX cards. Complaints from enthusiasts are that the RTX cards are more expensive and only moderately faster than the previous generation, they add hardware for features "no gamers" were really demanding (ray tracing), and then they add even more hardware to do some fancy behind the scenes trickery (DLSS) to try and make everything look good and perform adequately.
To say the initial sales results were underwhelming is an understatement, and a particularly painful one after the year of sold out GPUs thanks to cryptocurrency mining. But is ray tracing actually bad?
Hollywood and just about any other modern film would laugh at that idea. Hollywood would also laugh at the idea of using real-time footage from a video game and trying to pass it off as realistic. (Don't tell Uwe Boll.) But in between those extremes is an area of compromise.
Right now, the use of ray tracing in games is relatively primitive. Does it look better than not using ray tracing? Sure. Does it look a lot better? Not really, and that's the problem. Hollywood can let its artists run wild and have scenes render at hours per frame. Games have to reign the artists in and ultimately deliver decent performance. It can be a difficult balancing act.
Games continue to push the limits of what we can expect, visually. The hardware in our modern PCs absolutely dwarfs what we used to consider impressive 20 years ago. The GeForce 256 had just four pixel shaders, running at 120MHz. For about the same price today (accounting for inflation), you get 2,560 more capable shader cores running at 1770MHz. That's at least 10,000 times more performance. Looking at it that way, Nvidia's RTX cards to me are the first taste of the good things that will eventually be the standard.
We now have hardware that can do a pretty reasonable stab at rendering Pixar's original Toy Story in real-time. Yeah, some textures and geometry might have to be dropped a bit, but most people likely wouldn't be able to tell the difference. That's 24 years of progress to go from hours per frame to frames per second. Generation one of Nvidia's RTX line meanwhile is an interesting proof of concept that will need more hardware and more artistic resources before ray tracing in games really catches on.
Ray tracing in games is basically at that early-Pixar level now. In another 25 years, games could have graphics that are at the level of today's movies, running in real-time at 60fps. And of course by then there will be movies that look even more realistic and lifelike, still being rendered at minutes or hours per frame.