18/12/2011 'Rasterization patterns' of OpenGL 4 hardware

Last summer, inspired by The Froggy FragSniffer, I made an experiment taking advantage of atomic counters to display the "rasterization patterns" of the GeForce GTX 470 and the Radeon HD 5850 in real time.

This is arguably the rasterisation patterns or the order of execution of the atomic counter operations. Nevertheless, there is a correlation and the results highlight interesting features.

On AMD hardware everything it processes in Z order for the purpose of optimising the cache access. The Z-order is kept until a size of 16 pixels height is reached where the processing start to process by bands of 64 pixels per 512 pixels in which tiles of 16 by 16 pixels are scheduled along than band from top to bottom or bottom to top and the reverse order for the following collumn. Left to right of right to left order of the scheduling depends of the position of first vertex submitted. The Radeon 5850 seems to be highly but not completely reprodutible producing frame after frame nearly the same image. It seems that the GPU schedules its work per block of 8 by 8 pixels and this is probably is finest granularity.

Radeon HD 5000 series rasterizer pattern using OpenGL 4.2 atomic counter

NVIDIA hardware handles atomic operations in a very different way than AMD hardware as the atomic operations seems to be asynchronous which involves a high level of high frequency variations from frame to frame. Looking closely as the rendering features, the finest processing granularity seems to be a vertical block of 8 by 2 pixels which are scheduled to be processed. No matter how large is the triangle, it will be processed entierely along the width of the framebuffer within a band of 32 pixels height. It is hard to say if the GPU schedules the work on that band in a specific order which let me believe that the GeForce GTX 470 could be less efficient in it's usage of its memory bandwidth. If we remove atomic operations, my guess is that the GeForce GTX 470 schedule its processing in Z-order as well along this band of 32 pixels height.

GeForce GTX 470 rasterizer pattern using OpenGL 4.2 atomic counter

Then are these observations useful for anything? Probably not ready in practice but it was certainly intertaining to do!

December 2011 OpenGL drivers status >
< GLM 0.9.3.B released
Copyright © Christophe Riccio 2002-2016 all rights reserved
Designed for Chrome 9, Firefox 4, Opera 11 and Safari 5