The F-Buffer: A Rasterization-Order FIFO Buffer for Multi-Pass Rendering

Thumbnail Image
Journal Title
Journal ISSN
Volume Title
The Eurographics Association
Multi-pass rendering is a common method of virtualizing graphics hardware to overcome limited resources. Most current multi-pass rendering techniques use the RGBA framebuffer to store intermediate results between each pass. This method of storing intermediate results makes it difficult to conectly render partially-transparent surfaces, and reduces the performance of shaders that need to preserve more than one intermediate result between passes. We propose an alternative approach to storing intermediate results that solves these problems. This approach stores intermediate colors (or other values) that are generated by a rendering pass in a FIFO buffer as the values exit the fragment pipeline. On a subsequent pass, the contents of the FIFO buffer are fed into the top of the fragment pipeline. We refer to this FIFO buffer as a fragment-stream buffer (or F-buffer), because this approach has the effect of associating intermediate results with particular rasterization fragments, rather than with an (x,y) location in the framebuffer. Implementing an F-buffer requires some changes to current mainstream graphics architectures, but these changes can be minor. We describe the designs pace associated with implementing an F-buffer, and compare the F-buffer to recirculating pipeline designs. We implement F-buffers in the Mesa software renderer, and demonstrate our programmable-shading system running on top of this renderer.

, booktitle = {
Eurographics/SIGGRAPH Graphics Hardware Workshop 2001
}, editor = {
Kurt Akeley and Ulrich Neumann
}, title = {{
The F-Buffer: A Rasterization-Order FIFO Buffer for Multi-Pass Rendering
}}, author = {
Mark, William R.
Proudfoot, Kekoa
}, year = {
}, publisher = {
The Eurographics Association
}, ISSN = {
}, ISBN = {
}, DOI = {
} }