Contents
Resolve Your Resolves
 
 
Printer-Friendly VersionPrinter-Friendly Version
 
Latest News
spacer View All spacer
 
November 22, 2009
 
Video Game Watchdog National Institute On Media And The Family Shutting Down [11]
 
Modern Warfare 2 Infinity Ward's 'Most Successful PC Version' Yet [12]
 
New Tech, Design Details Of Project Natal To Emerge At Gamefest In February
spacer
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
November 22, 2009
 
Sucker Punch Productions
Character Artist
 
Sucker Punch Productions
3D Environment Artist
 
Sucker Punch Productions
Network Programmer
 
Sucker Punch Productions
Texture Artist
 
Sony Online Entertainment
Brand Manager
 
Monolith Productions
Sr. Software Engineer, Engine - Monolith Productions - #113767
 
Crystal Dynamics
Sr. Level Designer
 
Gargantuan Studios
Lead World Designer
spacer
Latest Features
spacer View All spacer
 
November 22, 2009
 
arrow Upping The Craft: Susan O'Connor On Games Writing [6]
 
arrow Small Developers: Minimizing Risks in Large Productions - Part II [6]
 
arrow iPhone Piracy: The Inside Story [48]
 
arrow And Yet It Grows: Analyzing the Size and Growth of the European Game Market [5]
 
arrow NPD: Behind the Numbers, October 2009 [13]
 
arrow Reflecting On Uncharted 2: How They Did It [5]
 
arrow Sponsored Feature: Rasterization on Larrabee -- Adaptive Rasterization Helps Boost Efficiency
 
arrow Postmortem: Wadjet Eye's The Blackwell Convergence [2]
spacer
Latest Blogs
spacer View All     Post     RSS spacer
 
November 22, 2009
 
Accepting the Inherent Value of Games
 
Planckogenesis, Part II: Song Structure & Gravy Train [1]
 
Designing Games Is About Matching Personalities [1]
spacer
About
spacer News Director:
Leigh Alexander
Features Director:
Christian Nutt
Editor At Large:
Chris Remo
Advertising:
John 'Malik' Watson
Recruitment/Education:
Gina Gross
 
Features
  Resolve Your Resolves
by Holger Gruen, Jon Story
0 comments
Share RSS
 
 
March 26, 2008 Article Start Previous Page 2 of 3 Next
 

Useful Resolves

We know that the use of MSAA render targets is only helpful when draw calls produce visible "jaggies". In an ideal world the main geometry pass would be rendered in MSAA mode, and then resolved to a non-MSAA render target. Any subsequent post-processing passes would all be completed in non-MSAA mode. This would therefore give rise to just a single resolve per frame.

However there are two reasons why a post-processing technique may need to be performed in MSAA mode:

Advertisement
  1. If a post-processing technique enables subsample based depth testing, it can result in an update to some of the subsamples of a pixel.
  2. In a similar way, if alpha blending is enabled, then subsample data is preserved through the blend operation.

In these two cases it may indeed make sense to resolve the render target for further passes. However these two examples are the exception and it should be noted that for full screen passes that do not enable depth testing or alpha blending, there is precious little point in using MSAA mode.

Redundant Resolves

A technique that does not actually draw any geometry, other than a full screen quad, will usually write the same color to all subsamples in a MSAA render target (Figure 2).

The reason for this is that the pixel shader is only run once per pixel and the whole pixel is covered. Effectively the MSAA buffer has been turned into a non-MSAA buffer, and every further resolve operation on this surface is redundant.

Aside from the obvious redundancy, once the same color has been written to all subsamples of the corresponding pixels, it should be noted that the MSAA depth buffer does not actually match the silhouettes of the objects anymore.

Clearly the solution is to render these passes in non-MSAA mode, thus completely avoiding the need to perform resolves. The recommended way to avoid these unnecessary resolves is as follows:

  1. Create the main frame buffer (swap chain) in non-MSAA mode.
  2. Create an intermediate MSAA render target where the main scene geometry is rendered, and anything else that would result in "jaggies".
  3. Perform a resolve of the intermediate MSAA render target to a non-MSAA surface.
  4. Ping pong between non-MSAA render targets for the remaining passes (Figure 3).

To add a real world example to this discussion, the following sequence of passes was uncovered during the analysis of a recently released PC title:

  1. Render the geometry pass into the main MSAA render target M
  2. Resolve M into a non-MSAA render target A
  3. Render A on to M using a full-screen quad
  4. Resolve M into A
  5. Render water to M
  6. Resolve M into A for further post-processing

It is fairly obvious from an initial glance at this sequence, that steps two through four are totally redundant. In fact step three is actually harmful from a quality standpoint, as it destroys the subsample color information.

 
Article Start Previous Page 2 of 3 Next
 
Comments

none
 
Comment:
 


Submit Comment