A publicação no blog que John menciona é um bom começo (se é que eu digo!), Mas há alguns detalhes extras que podem ser úteis.
Para a arquitetura PowerVR, a estrutura de dados intermediária - chamada de lista primitiva ou buffer de parâmetros (PB) - que armazena os dados por bloco, depois que todo o sombreamento de vértice e o processo de mosaico são concluídos, é realmente gerada e gerenciada principalmente por o hardware, em vez do driver.
As estruturas em memória do PB são fisicamente divididas em duas. Primeiro, blocos de dados de vértice transformados, incluindo atributos de vértice. Os blocos são compactados e, como você pode imaginar, são apenas dados de ponto flutuante compactados e compactados em sua maior parte. A segunda estrutura na memória são os dados lado a lado, que são efetivamente uma lista de listas.
A lista de nível superior nessa estrutura de dados é chamada de região e pode codificar um conjunto de blocos em vez de um bloco por vez, para um determinado bloco primitivo. Uma região é, portanto, um conjunto de locais de blocos de tela, estados de bloco e, em seguida, uma lista dos blocos compactados que mantêm a geometria nessa região. As regiões são nas quais o rasterizador funciona, e você pode imaginar que os blocos vazios são ignorados automaticamente, embora em alguns casos haja uma boa razão para o rasterizador visitar regiões vazias.
A memória que a GPU usa para o PB é alocada dinamicamente em todas as implementações modernas do PowerVR. Um ponteiro para essa memória é fornecido pelo driver, e o driver, com a ajuda da GPU, o dimensionará conforme necessário. Esse mecanismo é uma troca entre ter que realocar com freqüência e minimizar a quantidade de espaço do PB alocado.
As GPUs modernas se esforçam muito para minimizar a indireção de memória, mas caminhar pelo PB para alimentar o estágio de rasterização é um daqueles casos em que é realmente difícil e não há outra opção. Felizmente, o ponteiro perseguindo envolve grandes blocos que armazenam bem em cache e são transmitidos para o núcleo.
Outras arquiteturas não funcionam exatamente da mesma forma que o PowerVR, porque parte do motivo pelo qual o PB é o que é em nossa arquitetura é ajudar o conceito de sombreamento de pixel totalmente diferido que implementamos, mas o conceito geral se aplica a todos os outros tilers no espaço móvel que eu conheço.