Intel Details Option To Move Antialiasing To The CPU

When AMD launched the Barts GPU that powers the Radeon 6850 and 6870 last year, it added support for what it described as a new type of antialiasing—Morphological AA (MLAA). Intel, who originally developed MLAA in 2009, has released a follow-up paper on the topic--including a discussion of how the technique could be handled by the CPU. While this might seem contrary to conventional wisdom, it could allow an integrated CPU+GPU to make better use of existing execution resources.

The first thing to understand about MLAA is that it isn't a traditional form of antialiasing at all. Traditional antialiasing (supersampling or multisampling) is performed after lighting is calculated and textures are applied. Supersampling is much more computationally and bandwidth intensive than multisampling, but both techniques are capable of demanding more horsepower than modern consoles or mobile
devices are able to provide.

ATI's MLAA implementation uses DirectCompute--Intel's CPU-centric method doesn't

Morphological Antialiasing, in contrast, is performed on an already-rendered image. An MLAA filter examines the image buffer to locate discontinuities between neighboring pixels, identifies U, Z, and L-shaped patterns in those discontinuities, and finally blends the colors around the patterns. The screenshot below demonstrates the process:

The left-hand side is the original image. MLAA has been applied on the right

Intel describes MLAA as "an image-based, post-process filtering technique which identifies discontinuity patterns and blends colors in the neighborhood of these patterns to perform effective antialiasing. It is the precursor of a new generation of real-time antialiasing techniques that rival MSAA."

Battlefield: Bad Company 2 DX10, No AA

Battlefield: Bad Company 2, MLAA Enabled. Check the individual branches of the scene to see the difference between MLAA enabled and disabled

The technique is embarrassingly parallel and, unlike traditional hardware antialiasing, can be effectively handled by the CPU in real time. MLAA is equally compatible with ray tracing or rasterized graphics and it functions perfectly when combined with deferred lighting (a type of rendering used by modern consoles),  Another advantage is that MLAA is calculated once per frame regardless of scene complexity, making it easier for programmers to estimate the performance hit of enabling the feature. It's not perfect--morphological antialiasing doesn't calculate sub-pixel precision--but it's a decent compromise between MSAA's improved visuals and a total lack of AA. It lacks the former's occasionally hit-or-miss approach; MLAA can be universally applied, whereas MSAA has trouble with transparencies.

Render The Future

Performance comparison using Intel's Sandy Bridge integrated GPU. Scene complexity = visual detail in this case. Milliseconds on the left refer to the time to render a frame as opposed to a frame rate. Ignore the bottom light-blue curve.

Intel's idea of using spare CPU cores to process MLAA is, ironically, exactly the sort of cross-pollinated environment AMD has in mind when it talks about heterogeneous computing. AMD could theoretically port MLAA to the CPU as well, but we suspect the company will wait until its CPU and GPU are connected by a faster, wider interconnect.* It offers game developers a method of improving overall image quality more evenly than MSAA alone can provide, and for much less of a performance hit.

MLAA isn't necessarily aimed at computer enthusiasts with midrange or higher discrete graphics cards. Rather, it's likely to prove most important in devices where power consumption, battery life, or GPU subsystem performance is substantially constrained. It makes sense for consoles (both the PS3 and XBox 360 can use it) due to the graphical limitations of both. Intel's move to highlight the advantages of performing MLAA on the CPU may be a preview of what we'll see the company focus on when it releases its next-generation, DX11-class Ivy Bridge, but we expect to see more companies focus on this type of rendering regardless.
Via:  Intel
SmogHog 3 years ago


What makes FXAA unique over techniques like MLAA is that FXAA has special logic to reduce the contrast of single-pixel and sub-pixel sized features that would otherwise be much more visually distracting without hardware AA. For example, single-pixel sized features alias by snapping from pixel to pixel, and sub-pixel sized features alias by flickering on and off as they overlap a pixel's center. Like other aspects of FXAA, the developer has full control as to how much of this contrast reduction to include in the title.

Note, there are also many different versions of FXAA: FXAA 1 (which was described in the NVIDIA DX11 SDK white paper you mentioned), FXAA 2 which was designed for the Xbox 360, and FXAA 3 of which there are two algorithms, FXAA 3 Quality for the PC and FXAA 3 Console designed for the Xbox 360 and PS3. Performance has changed between versions: FXAA 3 has some major performance advantages over FXAA 1. A typical 720p video frame can be processed with FXAA 3 Quality in around 0.21 milliseconds on a GTX 480 with the default settings in DX11. Performance will also vary between DX9 and DX11 for the same settings (DX11 being faster due to gather4 and programmable offsets).

The FXAA in FEAR3 is based on FXAA 1. FXAA 1 was also used in Duke Nukem Forever, Age of Conan, Crysis 2 (with their temporal 2x supersampling) and Brink.

OptimusPrimeTime 3 years ago

"Embarrassingly parallel" refers to a problem made up of many isolated tasks, such as running a fragment (pixel) shader on millions of different fragments, or a HTTP server handling thousands of clients, that can all be run concurrently without any communication between them."

"It's odd that, that term is used here, because the other anti-aliasing techniques are embarrassingly parallel as well. SSAA (super-sampling) always renders each pixel n times at various locations within the pixel, and blends them together."

"MSAA (multi-sampling) is basically the same as SSAA, but only works on polygon edges and is very dependant on proper mipmapping to reduce aliasing introduced when scaling textures."


ThunderBird 3 years ago

Whatever works best.

Dave_HH 3 years ago

Interesting stuff SH. Thanks for this. I do think the point of MLAA here is that it's efficiently processed on either CPU or GPU engines, which helps balance available resource utilization.

maccinema 3 years ago

I worked on an algorithm well prior to 2009 similar to MLAA. I'm surprised this was/is news. Lastly, it seems to me that box 2f in the MLAA graph should be (lightly) shaded.

TOXiNZ 3 years ago


Vector graphics. Create that as standard HD video tech.

Then we can talk impressed .

Joel H 3 years ago


Think that's what you're looking for. ;)

And yes. I think the bigger point here was moving algorithms to the CPU efficiently, as opposed to the inherent new-ness of the approach, or the idea that MLAA is somehow the perfect / one-size-fits-all solution.

Post a Comment
or Register to comment