1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

NVIDIA FXAA Anti-Aliasing Performance

Michael Larabel

Published on 18 September 2012
Written by Michael Larabel
Page 1 of 5 - 6 Comments

A few months back the NVIDIA Linux driver introduced support for FXAA, a new anti-aliasing method. In this article are benchmarks of FXAA plus more information on this post-process shader-based anti-aliasing method.

FXAA isn't meant to replace MSAA (Multi-Sample Anti-Aliasing) or other AA methods but is rather something complementary. NVIDIA introduced this support to their 304.30 Linux graphics driver back in July while some games already provide support for using FXAA directly. NVIDIA has also brought FXAA to game consoles as this method of anti-aliasing is more lightweight compared to MSAA. NVIDIA offers the source-code to a reference FXAA implementation for those interested.

FXAA is short for Fast Approximate Anti-Aliasing. This was designed by Timothy Lottes of NVIDIA. Below is an email that Lottes sent to me that describes FXAA in much more detail.

(1.) FXAA was designed to be a fast post-process shader based anti-aliasing method which can improve image quality when an application or game cannot afford to use hardware anti-aliasing methods like MSAA or CSAA. FXAA is not designed to replace MSAA/CSAA or any other hardware AA method, but rather just offer another option.

FXAA is an interesting option for a game which is using deferred rendering and doesn't have MSAA support, or for a notebook which cannot run 4xMSAA fast enough in a specific game. But for games which have native MSAA support on higher-end machines, the 4xMSAA option will have higher quality.

(1.a.) As a post-process filter running without multiple samples per pixel, FXAA has some limitations as to what quality it can reach. FXAA can improve the quality along edges, but it does not do a good job on near horizontal or near vertical edges. Since FXAA runs without MSAA, it also attempts to find areas of the image which might cause jittering in motion and reduces the contrast to reduce the jittering in motion (compared to no-AA). This effect can look like a softening of the image.

(2.) FXAA does not mix with MSAA/CSAA. FXAA is designed to find edges on no-AA images, and the MSAA gradient steps confuse the FXAA filter. That being said some developers like DICE with Battlefield3 on Windows, decided to offer an FXAA option even with MSAA turned on, and this can increase quality on things like trees and bushes which use a technique called "alpha test" which doesn't mix as well with MSAA.

(3.) FXAA comes in two different forms: a driver-FXAA, and the following source forms,
(a.) FXAA v1 which was released as an SDK sample (slow, but high quality).
(b.) FXAA v2 release in source form as a prototype for PS3 and 360 (fast, but low quality).
(c.) FXAA v3.11 release in source form as a highly optimized version of v1 and v2 (has a PC and console mode).

The source versions of FXAA were designed as shaders a developer could download and just integrate directly into their game or application. FXAA in this way was portable to any Linux/Windows/Mac/PS3/360 machine, and the developer could change and customize FXAA towards their application.

Later NVIDIA decided that it might be a good idea to offer some form of FXAA as a driver option for games or apps which didn't already integrate FXAA. Games that integrate FXAA source directly run FXAA before rendering the HUD or text or UI elements, however the driver-FXAA only can be applied after the HUD/UI rendering right before the frame gets sent to the display or composited for windowed mode. So driver-FXAA has the disadvantage of being applied to text, and FXAA will soften the text a little. Also on top of this the driver-FXAA is a little more expensive because it has some extra logic to reduce the filtering on text compared to the source versions of FXAA.

One other thing with driver-FXAA, is that you might have a hard time getting screen shots. At least on Windows I can confirm that driver-FXAA is applied after utilities like fraps grab their captures. On Linux I'm not sure exactly where the driver team did the integration, but guessing you will have the same problem.

On the following pages are benchmarks showing the performance of Fast Approximate Anti-Aliasing on various NVIDIA GeForce GPUs.

<< Previous Page
1
Latest Linux Hardware Reviews
  1. MSI X99S SLI PLUS On Linux
  2. NVIDIA GeForce GTX 970 Offers Great Linux Performance
  3. CompuLab Intense-PC2: An Excellent, Fanless, Mini PC Powered By Intel's i7 Haswell
  4. From The Atom 330 To Haswell ULT: Intel Linux Performance Benchmarks
Latest Linux Articles
  1. Open-Source Radeon 2D Performance Is Better With Ubuntu 14.10
  2. RunAbove: A POWER8 Compute Cloud With Offerings Up To 176 Threads
  3. 6-Way Ubuntu 14.10 Linux Desktop Benchmarks
  4. Ubuntu 14.10 XMir System Compositor Benchmarks
Latest Linux News
  1. Dead Island GOTY Now Available On Linux/SteamOS
  2. Ubuntu 14.04 In The Power8 Cloud From RunAbove
  3. KDE With Theoretical Client-Side Decorations, Windows 10 Influence
  4. Sandusky Lee: Great Cabinets For Storing All Your Computer Gear
  5. Fedora 21 Beta & Final Release Slip Further
  6. Mesa 10.3.2 Has A Couple Bug-Fixes
  7. RadeonSI/R600g HyperZ Support Gets Turned Back On
  8. openSUSE Factory & Tumbleweed Are Merging
  9. More Fedora Delays: Fedora 21 Beta Slips
  10. Mono Brings C# To The Unreal Engine 4
Latest Forum Discussions
  1. Updated and Optimized Ubuntu Free Graphics Drivers
  2. HOPE: The Ease Of Python With The Speed Of C++
  3. Use Ubuntu MATE 14.10 Make it an official distro.
  4. Users/Developers Threatening Fork Of Debian GNU/Linux
  5. Debian Is Back To Discussing Init Systems, Freedom of Choice
  6. AMD Radeon VDPAU Video Performance With Gallium3D
  7. Ubuntu 16.04 Might Be The Distribution's Last 32-Bit Release
  8. Linux hacker compares Solaris kernel code: