NVIDIA Multi-Frame Sampled Anti-Aliasing (MFAA) Performance
NVIDIA launched MFAA (multi-frame sampled AA) along with the GTX 980 and GTX 970 back in September of last year and in November the driver finally enabled it. I did some testing with it including screenshots and benchmarks so I would highly encourage you to reference that story for a full background on the technology. Here is a summary:
While most of the deep, architectural changes in GM204 are based around power and area efficiency, there are still some interesting feature additions NVIDIA has made to these cards that depend on some specific hardware implementations. First up is a new antialiasing method called MFAA, or Multi-Frame Sampled AA. This new method alternates the AA sample pattern, which is now programmable via software, in both temporal and spatial directions.
The goal is to change the AA sample pattern in a way to produce near 4xMSAA quality at the effective cost of 2x MSAA (in terms of performance). NVIDIA showed a couple of demos of this in action during the press meetings but the only gameplay we saw was in a static scene. I do have some questions about how this temporal addition is affected by fast motion on the screen, though NVIDIA asserts that MFAA will very rarely ever fall below the image quality of standard 2x MSAA.
That information is still correct but we do have a little bit more detail on how this works than we did before. For reasons pertaining to patents NVIDIA seems a bit less interested in sharing exact details than I would like to see, but we'll work with what we have.
Previous-generation GPUs include fixed sample patterns for anti-aliasing (AA) that are stored in Read Only Memory (ROM). When gamers selected 2x or 4x MSAA for example, fixed sample patterns were used. With Maxwell, we have introduced programmable sample positions for rasterization that are stored on Random Access Memory (RAM), creating opportunities for new, more flexible, more inventive AA techniques that uniquely address the challenges of modern game engines, such as the increased performance cost of high-quality anti-aliasing. Maxwell's new RAM-based sample position technology can still be programmed with standard MSAA and TXAA patterns, but now the driver or application may also load the RAM with custom positions that are free to vary from frame to frame, or even within a frame.
While temporal anti-aliasing has definitely been done before, the key point appears to be its locality in graphics memory and the flexibility for the driver or game developer to specify these AA sample points on-demand. MFAA, as a technology, takes advantage of this implementation by alternates sample patterns on a frame-to-frame basis, offering potential image quality and performance advantages.
Interestingly, taking screenshots of MFAA doesn't work as it has with most other AA implementations. Users or reviewer's taking screenshots of MFAA with Fraps or similar capture utilities are not going to be the final image sent to the display; this same thing occurs with DSR-enabled games and screen captures. Instead, you need to use hardware capture to see the results of MFAA and we are already well-versed in that with our Frame Rating performance capture capabilities.
At the time, MFAA only supported a small selection of 20 games. But with this release, the 347.25 driver ups support for all DX10/11 games that support MSAA with the exception of Dead Rising 3, Dragon Age 2 and Max Payne 3 due to image quality concerns. That's big news as nearly-global support for it is required for gamers to really take it seriously as an alternative to today's standard practices.
Below I have included screenshots to demonstrate some interesting locations in our BF4, GRID 2 and Crysis 3 test runs.
Click to Enlarge
Our first comparison comes from GRID 2 and you can see in the metal frame work of the signage that the MFAA implementation is definitely a step above that of the 2xMSAA screen capture. Here, in a very static portion of the benchmark, the quality of 4xMSAA and 4xMFAA are difficult to distinguish between.
Click to Enlarge
Next up is Battlefield 4 and a look into the distance at a collection of telephone poles. In this case the screen capture comes from a portion of the game that is moving. Once again we see that NVIDIA's MFAA is definitely a quality step above 2xMSAA and nearly identical to the result of the 4xMSAA image.
Click to Enlarge
Finally, we have our most difficult comparison in Crysis 3. Look along the top edge of the red pipe we are walking across and notice the jagged edges at 2xMSAA that are mostly gone at 4xMSAA. With 4xMFAA though, the result is better than 2xMSAA but still a clear step behind that of the standard 4xMSAA implementation.
Let's see how a couple of examples pan out for NVIDIA with the GTX 960.
Wow, first impressions are great here as we see the move from 4xMSAA to 2xMSAA on Crysis 3 results in a big performance improvement! With a nearly 20% increase in the average frame rate in this title, and image quality that nearly matches that of 4xMSAA, the technology of MFAA can definitely prove useful for gamers struggling with a game on the edge of playability.
GRID 2 results are minimal – it would appear that MSAA performance is not a bottleneck.