Gamasutra: The Art & Business of Making Gamesspacer
Resolve Your Resolves
View All     RSS
September 25, 2017
arrowPress Releases
September 25, 2017
Games Press
View All     RSS






If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 

Resolve Your Resolves


March 26, 2008 Article Start Page 1 of 3 Next
 

[In this in-depth technical article, Gruen & Story examine anti-aliasing in games, explaining how you can reduce 'jaggies' in your PC title, and save frame-rate, by using significantly less post-processing passes.]

Over the last few years it has become commonplace for PC games to make use of Multi-Sample Anti-Aliasing (MSAA) to achieve higher quality rendering.

MSAA is a very effective and efficient method for reducing the unsightly "jaggies" that result from the triangle rasterization process. At the same time most game engines also employ post-processing techniques such as depth-of-field, motion blur, color correction and refraction.

Post-processing has become increasingly popular, as it provides a way to carry out complex computations, but only pay the cost for visible pixels. It is not unheard of for an engine to contain up to 20 passes, and these techniques usually require a copy of the main render target as a texture input.

If the engine is making use of MSAA, then the render target will need to be resolved before it can be used in the next pass. This is accomplished through calls to IDirect3DDevice9::StretchRect or ID3D10Device::ResolveSubresource, depending on which version of D3D is being used.

As modern game engines tend to apply multiple post-processing techniques, it is easy to understand how the application could trigger a loop of resolves (Figure 1).

It is critically important to understand that a resolve is not a free operation, and that performing multiple resolves per frame can have a very serious impact on performance. This statement is true for all graphics hardware.

To take a real world example, the developers of a recently released PC title managed to reduce their resolve count from a staggering 22 to just 12. This generated a saving of around 12 ms per frame, at a resolution of 1280x1024@4xAA.

The goal of this article is to describe how to minimize the resolve count in the rendering pipeline without compromising the quality of post-processing effects or deferred shading techniques.

The resolves that should be removed fall into two categories, redundant resolves and harmful resolves, and these will be described in detail later in this article. But first let's consider the resolves that are necessary for good image quality.


Article Start Page 1 of 3 Next

Related Jobs

Naughty Dog
Naughty Dog — Santa Monica, California, United States
[09.22.17]

Graphics Programmer (Game Team)
Insomniac Games
Insomniac Games — Burbank, California, United States
[09.22.17]

Mid to Sr Gameplay Programmer
Insomniac Games
Insomniac Games — Durham, North Carolina, United States
[09.22.17]

Mid to Sr Gameplay Programmer
Supergiant Games
Supergiant Games — San Francisco, California, United States
[09.22.17]

Platforms Engineer at Supergiant Games





Loading Comments

loader image