Asynchronous Adaptive Anti-Aliasing using Shared Memory

By Rasmus Barringer1, Tomas Akenine-Moller1,2
Lund University1, Intel Corporation2

Edge aliasing continues to be one of the most prominent problems in real-time graphics, e.g., in games. We present a novel algorithm that uses shared memory between the GPU and the CPU so that these two units can work in concert to solve the edge aliasing problem rapidly. Our system renders the scene as usual on the GPU with one sample per pixel. At the same time, our novel edge aliasing algorithm is executed asynchronously on the CPU. First, a sparse set of important pixels is created. This set may include pixels with geometric silhouette edges, discontinuities in the frame buffer, and pixels/polygons under user-guided artistic control. After that, the CPU runs our sparse rasterizer and fragment shader, which is parallel and SIMD:i?ed, and directly accesses shared resources (e.g., render targets created by the GPU). Our system can render a scene with shadow mapping with adaptive anti-aliasing with 16 samples per important pixel faster than the GPU with 8 samples per pixel using multi-sampling anti-aliasing. Since our system consists of an extensive code base, it will be released to the public for exploration and usage.

Read the preprint paper: Asynchronous Adaptive Anti-Aliasing using Shared Memory [PDF 17.3MB]

Citation: Rasmus Barringer, Tomas Akenine-Moller, Asynchronous Adaptive Anti-Aliasing using Shared Memory, Siggraph, vol. 32, no. 4, 2013.

For more complete information about compiler optimizations, see our Optimization Notice.