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. A Walkthrough Of The New 32 System Open-Source Linux Benchmarking Test Farm
  2. Habey MITX-6771: Mini-ITX Board With Quad-Core J1900 Bay Trail
  3. OCZ Vector 150 SSD On Linux
  4. Noctua i4 CPU Cooler: Great For Cooling High-End LGA-2011v3 CPUs
Latest Linux Articles
  1. AMD Kaveri: Open-Source Radeon Gallium3D vs. Catalyst 14.12 Omega Driver
  2. 12-Way AMD Catalyst 14.12 vs. NVIDIA 346 Series Linux GPU Comparison
  3. AMD Catalyst 14.12 Omega Driver Brings Mixed Results For Linux Users
  4. 6-Way Winter 2014 Linux Distribution Comparison
Latest Linux News
  1. Linux 3.19-rc1 Kernel Released Ahead Of Schedule
  2. Civilization: Beyond Earth Linux GPU/Driver Benchmarks
  3. X.Org Server 1.16.3 Released To Fix Security Issues
  4. Linux 3.19 Merge Window Closes Ahead Of Schedule
  5. MIPS R6 Architecture Now Supported By GCC
  6. LowRISC To Feature Tagged Memory & Minion Cores
  7. Intel Skylake Audio Support For Linux 3.19
  8. After 10+ Years, NetworkManager Reaches v1.0
  9. VDPAU Updated To v0.9
  10. An Open Hardware Random Number Generator Proposed
Latest Forum Discussions
  1. FPS capped on Linux (AMD fglrx drivers)
  2. Need some hand holding with upgrading xserver
  3. Are there an app using HSA ?
  4. The New SuperTuxKart Looks Better, But Can Cause GPU/Driver Problems
  5. XLennart: A Game For Systemd Haters With Nothing Better To Do
  6. Updated and Optimized Ubuntu Free Graphics Drivers
  7. Debian init discussion in Phoenix Wright format
  8. Bench specific mount point