Em uma GPU real, em vez de ter vários núcleos tentando ler / gravar a mesma região do buffer de profundidade e tentar sincronizar entre eles, o buffer de profundidade é dividido em blocos (como 16 × 16 ou 32 × 32) e cada o bloco é atribuído a um único núcleo. Esse núcleo é responsável por toda a rasterização nesse bloco: quaisquer triângulos que tocam nesse bloco serão rasterizados (dentro desse bloco) pelo núcleo proprietário. Então não há interferência entre os núcleos e não é necessário que eles sejam sincronizados ao acessar sua parte do buffer de estrutura.
Isso implica que triângulos que tocam em vários blocos precisarão ser rasterizados por vários núcleos. Portanto, há uma etapa de redistribuição de trabalho entre o processamento de geometria (operações em vértices e triângulos) e o processamento de pixels.
No estágio de geometria, cada núcleo pode processar um pedaço de primitivas de entrada; depois, para cada primitiva, ele pode determinar rapidamente em quais blocos os toques primitivos (isso é chamado de "rasterização grossa") e adicionar o primitivo a uma fila para cada núcleo que possui um dos blocos afetados.
Em seguida, no estágio de pixel, cada núcleo pode ler a lista de primitivas em sua fila, calcular a cobertura de pixels para os blocos que o núcleo possui e prosseguir para testes de profundidade, sombreamento de pixels e atualização do buffer de estrutura, sem a necessidade de coordenação adicional. com outros núcleos.