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. Intel Launches The Core i7 5960X, Mighty Powerful Haswell-E CPUs
  2. AMD Radeon R9 290: Gallium3D vs. Catalyst Drivers
  3. AMD Radeon R9 290 Open-Source Driver Works, But Has A Ways To Go
  4. Trying The Configurable 45 Watt TDP With AMD's A10-7800 / A6-7400K
Latest Linux Articles
  1. How Intel Graphics On Linux Compare To Open-Source AMD/NVIDIA Drivers
  2. The Fastest NVIDIA GPUs For Open-Source Nouveau With Steam Linux Gaming
  3. Testing For The Latest Linux Kernel Power Regression
  4. The Most Energy Efficient Radeon GPU For AMD Linux Gaming
Latest Linux News
  1. AMD, Wine & Valve Dominated August For Linux Users
  2. Linux 3.17-rc3 Kernel Released Back On Schedule
  3. Lennart Poettering Talks Up His New Linux Vision That Involves Btrfs
  4. Mesa 10.3 RC2 Arrives Via Its New Release Manager
  5. Ubuntu 14.10's Lack Of X.Org Server 1.16 Gets Blamed On AMD
  6. MSI Motherboard BIOS Updating Remains A Pain For Linux Users
  7. See How Your Linux System Performs Against The Latest Intel/AMD CPUs
  8. AMD Steppe Eagle Flys To Coreboot
  9. Intel Beignet Is Working Out Surprisingly Well For OpenCL On Linux
  10. Coreboot Adds Lenovo X220 With Native Sandy Bridge Support
Latest Forum Discussions
  1. SSD seems slow
  2. AMD Releases UVD Video Decode Support For R600 GPUs
  3. Is laptop with Intel CPU and AMD dGPU worth buying considering especially AMD Enduro?
  4. Btrfs Gets Talked Up, Googler Encourages You To Try Btrfs
  5. Radeon HD5670 and Ubuntu 14.04
  6. Updated graphics drivers for Ubuntu 12.04 Precise LTS
  7. Catalyst 14.201.1008
  8. It's Now Possible To Play Netflix Natively On Linux Without Wine Plug-Ins