Índice das dicas

DirectX 9.0c, Shader Model 3.0 e a GeForce 6

Por Carlos E. Morimoto em 7 de outubro de 2009 às 19h32

10

Praticamente todos os jogos lançados entre 2007 e 2009 foram desenvolvidos primariamente para o DirectX 9.0c, com muitos deles oferecendo compatibilidade com placas DirectX 7 e outros oferecendo suporte opcional ao DirectX 10.

A grande diferença entre as placas DirectX 9.0c e placas DirectX 10 ou DirectX 11 atuais é que as placas DX 9 usam unidades separadas para o processamento de pixel shaders e vertex shaders, enquanto as placas atuais usam shaders unificados. Apesar disso, placas DirectX 9.0c como as GeForce 7800 GTX ainda podem prestar bons serviços, já que o desempenho é equivalente ao de uma placa low-end atual e a base de jogos com suporte ao DirectX 9.0c é simplesmente gigantesca, fruto do fracasso do DirectX 10 e sua relação com o Vista.

Em pleno final de 2009, a migração para o DirectX 10/11 ainda está apenas começando, o que significa que estas placas continuarão sendo capazes de rodar os novos lançamentos (embora com resoluções cada vez mais baixas e menos efeitos) por mais algum tempo.

De volta à história das placas 3D, o primeiro chipset a suportar o DirectX 9.0c foi o NV40 da nVidia, usado na série GeForce 6. O resumo da ópera é que depois do virtual fracasso da série FX, a nVidia voltou aos trilhos com a série GeForce 6, lançada em 2004. Não apenas o desempenho voltou a ser competitivo, mas as placas foram as primeiras a oferecer suporte ao DirectX 9.0c e ao Shader model 3.0, dando início à era moderna.

O chipset original da série foi o NV40, lançado em abril de 2004. Ele é composto por 220 milhões de transístores, utiliza um barramento de 256 bits com a memória e é produzido usando uma técnica de 0.13 micron. Internamente, ele é composto por 16 unidades de processamento de pixels (que resultam em um fill rate de 6400 megatexels a 400 MHz), 16 unidades de pixel shader, 16 unidades de processamento de texturas e 6 unidades de vertex shader.

As primeiras placas baseadas no NV40 ainda usavam o barramento AGP, mas logo foi feita a migração para o PCI Express, através do uso de um bridge AGP>PCIe (chamado pela nVidia de HSI, ou "High Speed Interconnect"), incluído nos chipsets do NV42 em diante.

O uso do bridge resulta em uma pequena redução de desempenho em relação às placas AGP, devido à conversão dos sinais, embora a diferença na prática seja muito pequena. Note que isso afeta apenas as placas GeForce 6, já que a partir da geração seguinte a nVidia passou a desenvolver chips com suporte nativo ao barramento PCI Express.

O NV40 original foi usado nas placas GeForce 6800 (256 MB, GPU a 325 MHz, memória a 700 MHz), GeForce 6800 GT (256 MB, GPU a 350 MHz e memória a 1.0 GHz) e GeForce 6800 Ultra (256 MB, GPU a 400 MHz e memória a 1.1 GHz), todas em versão AGP. A GeForce 6800 original utilizava memórias DDR convencionais, mas a GT e a Ultra utilizavam memórias GDDR3, o que acentuou a diferença de desempenho.

Estes três modelos custavam (na época de lançamento) entre 449 e 599 dólares, seguindo a estratégia de lançar os modelos mais rápidos dentro da série primeiro, de forma a vender o máximo de unidades a preços altos e só então lançar os modelos de baixo custo.

gf6_html_m8bc07bc

Ao longo da segunda metade de 2004 e o ano de 2005, o NV 40 deu origem a 5 variações: NV41, NV42, NV43, NV44 e NV45. Diferente do que tivemos na série GeForce 4, onde as placas de baixo custo (série MX) eram representantes da série anterior, e ofereciam suporte apenas ao DirectX 7, todos os derivados no NV40 ofereciam o mesmo conjunto de recursos básicos, se diferenciando apenas com base no desempenho.

O NV41 é uma versão de baixo custo do NV40, que possui um número menor de unidades de processamento. Ele inclui 12 unidades de processamento de pixels, 12 unidades de pixel shader, 12 unidades de processamento de texturas e 5 unidades de vertex shader, contra 16/16/16/6 do NV40.

O NV42, por sua vez, é uma versão do NV41 fabricada usando uma técnica de 0.11 micron, que inclui também suporte ao barramento PCI Express, através da inclusão do bridge HSI. Embora o desempenho da GPU não seja diferente do NV41, as placas baseadas no NV42 são capazes de operar a frequências um pouco mais altas em overclock, devido ao uso da nova técnica de fabricação.

Estes dois chipsets foram usados nas placas GeForce 6800 XT (256 MB, GPU a 325 MHz e memória a 700 MHz), GeForce 6800 GTO (256 MB, GPU a 350 MHz e memória a 900 MHz) e GeForce 6800 GS (256 MB, GPU a 425 MHz e memória a 1.0 GHz). Estas placas existiriam tanto em versão AGP quanto PCI Express (as PCI Express utilizam o NV42) e, com exceção da 6800 XT (que utiliza memórias DDR convencionais), também utilizavam memórias GDDR3.

Continuando, temos o NV43, que é basicamente um "meio NV40", com todas as principais especificações reduzidas à metade. Ele possui apenas 8 unidades de processamento de pixels, 8 unidades de pixel shader, 8 unidades de processamento de texturas e 3 unidades de vertex shader, alimentadas por um barramento de 128 bits com a memória. Naturalmente, a "poda" resultou em uma grande redução no desempenho, mas a idéia era essa mesma, já que o NV43 foi criado para ser um chipset de baixo custo.

Em seguida temos o NV44, uma versão ainda mais reduzida, usada em placas de baixo custo, como as GeForce 6200. O NV44 possui apenas 77 milhões de transístores (pouco mais de um terço do NV40) e é equipado com 4 unidades de processamento de pixels, 4 de texturas, 4 de pixel shader e 3 unidades de vertex shader (o único quesito em que ele não perde para o NV43). O barramento com a memória também foi reduzido à metade, para apenas 64 bits.

O NV43 e o NV44 foram usados nas placas da série GeForce 6 de baixo e médio custo, incluindo as GeForce 6200, 6200 TC, 6500, 6600, 6600 LE e 6600 GT.

As GeForce 6200 TC são as versões mais simples, baseadas no NV44. Elas são placas de extremo baixo custo, baseadas no uso do TurboCache, onde a GPU opera a 350 MHz e são usados apenas 16, 32, 64 ou 128 MB de memória DDR dedicada, acessada através de um barramento de 32 ou 64 bits.

Embora sejam muito lentas se comparado às 6800, elas foram placas bastante populares, devido ao baixo custo. Usando uma 6200 TC com 32 MB você pode jogar Half Life 2 (a 800x600) a 55 FPS (em média), ou o Battlefield 2 (a 1024x760) a 40 FPS. Desde que você mantenha o Antialiasing, o Anisotropic Filtering e outros efeitos desativados, a maioria dos títulos antigos rodam sem maiores problemas, mas, naturalmente, o FPS nos títulos mais atuais é muito baixo.

O TurboCache permite que a placa de vídeo utilize parte da memória RAM do sistema como extensão da memória de vídeo, realizando os acessos através do barramento PCI Express. A ideia básica é oferecer placas com pouca memória de vídeo dedicada, permitindo que a placa "roube" memória do sistema para completar 128, 256 ou 512 MB de memória de vídeo. Como pode imaginar, é essencialmente uma derivação dos sistemas de memória compartilhada encontrados em chipsets de vídeo onboard.

Ele não é usado em placas de médio e alto desempenho, simplesmente porque seu uso não faz sentido em placas com mais memória. Apesar do nome "Turbo Cache", ele não é um recurso destinado a melhorar o desempenho da placa (em relação a uma placa com mais memória dedicada), mas simplesmente "remendar" placas de baixo custo, permitindo que ela utilize mais memória do que fisicamente disponível. A pequena quantidade de memória dedicada é usada como uma espécie de "cache" para a memória compartilhada, daí o nome.

As GeForce 6200 (sem o "TC") são versões com mais memória dedicada. Elas são também baseadas no NV44 (ou em uma versão castrada do NV43, onde parte das unidades de processamento são desativadas, de forma que ele fique com o mesmo número de unidades do NV44) e incluem 128 ou 256 MB de memória DDR ou DDR2 dedicada, acessada através de um barramento de 64 bits ou 128 bits (de acordo com o modelo da placa). A frequência da GPU e da memória também varia de acordo com a série, podendo ser de 300 ou 350 MHz para a GPU e 400, 500 ou 533 MHz para a memória.

Toda essa variação dentro da série GeForce 6200 é justificável por esta ser a série de baixo custo, onde a prioridade é cortar custos e não oferecer um bom desempenho. Além das variações "oficiais" dentro da série existem variações introduzidas pelos fabricantes, que em muitos casos aumentam a frequência da GPU, ou utilizam módulos de memória mais rápidos como uma forma de diferenciar suas placas em relação às concorrentes. É por isso que reviews com comparações de placas de diferentes fabricantes, baseadas no mesmo chipset, são tão comuns.

As coisas melhoram a partir das GeForce 6600, que são baseadas na versão "completa" do NV43. A série inclui a GeForce 6600 (128 ou 256 MB, GPU a 300 MHz e memória DDR a 500 MHz), GeForce 6600 DDR2 (256 MB, GPU a 350 MHz e memória DDR2 a 800 MHz) e GeForce 6600 GT (128 MB ou 256 MB, GPU a 500 MHz e memória GDDR3 a 1.0 GHz). A GeForce 6600 original ainda usava memórias DDR, daí a baixa frequência efetiva dos módulos, o que limitava bastante o desempenho da placa. A 6600 GT, por sua vez, já utiliza memórias GDDR3, que oferecem uma frequência efetiva duas vezes maior e tempos de acesso mais baixos.

gf6_html_5ce78296

Existiram ainda as GeForce 6500 (128 ou 256 MB, GPU a 350 ou 450 MHz e memória a 550 ou 700 MHz) e 6600 LE (128 ou 256 MB, GPU a 300 MHz e memória a 500 MHz), versões de baixo custo baseadas em uma versão castrada do NV43, com apenas 4 unidades de processamento de pixels, pixel shader e texturas, em vez de 8. A redução faz com que a queda de desempenho em relação às GeForce 6600 seja maior do que a diferença de clock sugere. A 6600 LE é especialmente lenta, quase no nível das 6200, devido ao baixo clock da GPU e da memória.

Por estranho que possa parecer, o NV44 foi usado também na GeForce 7100 GS, a placa mais barata dentro da série GeForce 7. Nela o NV44 opera a 350 MHz, com a memória (DDR) a 667 MHz, o que resulta em um desempenho pouca coisa superior ao de uma 6600 LE.

Finalmente, temos o NV45. Ao contrário do que a lógica sugere, ele não é uma versão simplificada do NV44, mas sim uma versão atualizada do NV40, que utiliza o barramento PCI Express, graças à inclusão do bridge HSI. Ele foi utilizado nas versões PCI Express da GeForce 6800 GT e 6800 Ultra e também na GeForce 6800 Ultra Extreme (256 MB, GPU a 450 MHz e memória a 1.2 GHz), que foi a placa mais rápida dentro da família GeForce 6.

10 comentáriosPor Carlos E. Morimoto. Revisado 23 de março de 2011 às 12h37

Comentários

 
por vegeta (anônimo) em 10 de novembro de 2010 às 22h03
estou querendo comprar uma gefoce serie6 de 512mb ñ sei o nome do modelo mas deve der 6200 ou 6600 alguma coisa ñ tenho certeza mas queria saber se da pra joga race driver grid f1 2010 fifa 11 tomb raider underworld e outros jogos atuais de 2008 pra sima...
minha placa mae eh ddr1 e estou sendo um poco infeliz por dar pra almentar somente esses 512mb de video e 2gb de ram mas so queria sabe msm se da pra joga legau numa resoluçao de pelo mennos 800x600 e qtos fps rodariam esses jogos em media.
aguardo a resposta... VLW!
 
por annakamilla (anônimo) em 15 de outubro de 2009 às 18h03
também tive uma pequena desilusão com a minha geforce 6200 de 512 por causa do monitor.
mas acho que no caso do linux o que foi problemático é reconhecer as resoluções do monitor pelo nvidia autodetect.
configurei resolução manual e nunca mais tive problema com compiz e monitor, consigo ver até meu cubo.
mas acho que as vezes quando jogo frets on fire fica lento.
 
por Ednei P. de Melo (anônimo) em 9 de outubro de 2009 às 02h06
Zheng, os contatos acima que se refere são necessários para serem acoplados uma interface de comunicação (ponte) entre as duas, e assim, possibilitar o SLI. &;-D
 
por Thiago (anônimo) em 8 de outubro de 2009 às 22h07
É triste ver que minha GeForce 6200 A-LE de 256MB é simplesmente uma plaquinha populaxo. Já faz algum tempo que estou ciente disso, mas na época em que a comprei ainda vivia na ilusão de achar que placa-de-vídeo com muita memória era grande vantagem. Felizmente hoje não vivo mais com essa ignorância e adoro ler estes artigos do Guia do Hardware e também os do Clube do Hardware, que são verdadeiros professores para mim. Eu só tenho a agradecer a quem escreve esses artigos (o Carlos Morimoto, por exemplo).
 
por Tiago Luiz Messias (anônimo) em 8 de outubro de 2009 às 17h24
Valeu Moop! Muito esclarecedor! :-)
 
por Zheng (anônimo) em 8 de outubro de 2009 às 16h43
Tenho uma dúvida que me intriga há muito tempo. Qual a utilidade dos pinos que ficam na parte de cima das placas de vídeo, como o da imagem da Geforce 6?
 
por Moop (anônimo) em 8 de outubro de 2009 às 11h17
Sobre a 7800 GTX, o desempenho dela ao rodar jogos em DX 10 ou 11 é o mesmo de uma FX 5200 ou de uma SiS 530, ou seja, não roda. Com DX 9.0c, o desempenho dela é comparavel a uma GF 8600 GTS ou HD 2600 XT, dependendo do jogo e da configuração usada (como consta nos benchmarks que o Ednei postou acima)... agora se isso é "low-end" ou "middle-end" vai depender da pessoa... pessoalmente, com uma HD 4650 DDR3 custando ~$50 (dá pra achar até por $35 depois do "rebate"), acho que a 7800 GTX tá mais é pra "low-end" mesmo. Acho que o "custo Brasil" deixa essa questão de "low-end" e "middle-end" bem complicada...
 
por Tiago Luiz Messias (anônimo) em 8 de outubro de 2009 às 10h24
Hmmmm... sob que aspecto uma 7800 GTX é equivalente às low-end atuais? Seria ao rodar jogos com DX-10 ou 11? Rodando jogos com DX-9? Qual seria a referência?
 
por Ednei P. de Melo (anônimo) em 8 de outubro de 2009 às 02h05
7800 GTX comparáveis às low-end? Acho que não! Ao menos, ela estaria entre as middle-end mais acessíveis...

http://www.tomshardware.com/charts/gaming-graphics-charts-q3-2008/3DMark06-v1.1.0-3DMark-Score,794.html
 
por AchubaNanoiaBR (anônimo) em 7 de outubro de 2009 às 19h53
Como sempre, excelentes artigos, bastante elucidativos e ao mesmo tempo técnicos. Parabéns pelo ótimo trabalho.