Toda imagem 3D começa como um enorme conjunto de polígonos, coordenadas e comandos, gerado pelo processador principal e armazenado na memória. A função básica da placa de vídeo é transformar estes dados na imagem 2D que será
mostrada no monitor, processo chamado de renderização. No caso dos jogos, as informações na memória são atualizadas em tempo real (ou quase 🙂 pelo processador, conforme o código do jogo é processado e a placa de vídeo se encarrega de tirar “screenshots”
periódicos, que são exibidos no monitor. Por estranho que possa parecer, o trabalho necessário para renderizar as cenas em tempo hábil é muito maior do que o próprio trabalho de executar o jogo e armazenar as informações na memória, daí a necessidade de
usar uma placa 3D.
O fill rate indica a capacidade bruta da placa de vídeo em renderizar pixels. Em placas antigas, o fill rate é a especificação mais importante da placa, mas nas atuais existem diversos outros fatores, como o processamento de
shaders, de texturas e o suporte a recursos diversos.
Existem dois tipos de fill rate, o “pixel fill rate” e o “texel fill rate”. O primeiro indica o processamento de pixels (medido em megapixels por segundo), enquanto o segundo indica a capacidade da placa em aplicar texturas
(medida em megatexels por segundo). O pixel fill rate é especialmente importante ao ativar o suporte a antialiasing, enquanto que um bom texel fill rate permite rodar os jogos usando texturas maiores e efeitos relacionados a elas (como o
Anisotropic Filtering), que resultam em uma melhor qualidade de imagem.
O fill rate pode ser calculado com base no número de unidades de processamento e o clock da GPU. O processamento dos pixels é dividido em duas etapas. A primeira é executada pelos pixel pipelines, que geram a imagem “bruta”
a partir dos polígonos. Os pixels são então enviados aos ROPs (Raster Operations Pipelines, ou Render Output Pipelines) que combinam a imagem com as texturas (geradas pelas unidades de processamento de texturas), aplicam efeitos adicionais e geram a
imagem final, que é mostrada no monitor.
A GeForce 7900 GTX, por exemplo, possui 16 ROPs, 24 pixel pipelines, 24 unidades de processamento de texturas e opera a 650 MHz. Isso resulta em um fill rate de 10400 megapixels e 15600 megatexels. Você pode notar que ela
possui mais pixel pipelines e mais unidades de processamento de texturas do que ROPS, ao contrário de placas mais antigas (como as GeForce 6), que possuem a mesma quantidade de cada tipo. Isso visa melhorar o desempenho da placa ao usar recursos como o
Antialiasing e o Anisotropic Filtering, sem contanto aumentar exageradamente a complexidade do projeto adicionando mais ROPs.
Como de praxe, o fill rate é determinado pela combinação do clock da GPU e do número de unidades de processamento. A GeForce 8800 GTS, por exemplo, opera a uma frequência mais baixa que a 7900 GTX (apenas 500 MHz) mas
possui, em compensação, 48 unidades de processamento de texturas, o que resulta em um fill rate de 24000 megatexels, mais de 50% maior.
Antigamente, as placas possuíam o mesmo fill rate para pixels e texels, mas as atuais possuem, via de regra, uma capacidade de processamento de texturas muito maior. Isso acontece porque nos jogos atuais o uso de texturas é
muito mais intenso, inclusive com o uso de texturas sobrepostas. Isso faz com que a placa acabe processando um volume muito maior de texturas do que de pixels, fazendo com que o texture fill rate torne-se, quase sempre, um gargalo muito antes do pixel
fill rate. É por isso que o pixel fill rate sequer é mencionado nas especificações de muitas placas atuais.
Só para efeito de comparação, a Voodoo 1, lançada em 1996, possui um fill rate de apenas 50 megatexels, enquanto a Riva TNT2, lançada em 1999, tem um fill rate de 250 megatexels. A TNT2 tem um fill rate cinco vezes maior do
que a Voodoo, mas quase 100 vezes menor que a GeForce 8800 GTS. Como você pode ver, as placas 3D evoluíram (proporcionalmente) bem mais rápido do que os processadores do final da década de 1990 pra cá.
Diferente do que tínhamos há uma década atrás, o fill-rate deixou de ser uma especificação importante, a ponto de muitas vezes sequer ser citado no material publicitário. Assim como em outras áreas, o poder de renderização
das placas 3D evoluiu a ponto de mesmo os modelos mais simples oferecerem um fill-rate mais do que suficiente. Conforme os gráficos dos jogos e aplicativos 3D cresceram em complexidade, o desempenho passou a ser limitado por outros fatores, com destaque
para o processamento de shaders.
Deixe seu comentário