Otimizando a velocidade da placa gráfica

Publicado por rudolf ghysio schaarschmidt em 02/07/2003

[ Hits: 11.347 ]

 


Otimizando a velocidade da placa gráfica



Para otimizar a velocidade da placa gráfica é necessário descobrir os endereços das zonas de memória usadas por ela.

Felizmente, essa informação pode ser obtida a partir do arquivo /proc/pci:

$ cat /proc/pci

No caso do meu sistema, obtenho a seguinte lista:

PCI devices found:
Bus 0, device 0, function 0:
Host bridge: Intel 440BX - 82443BX Host (rev 3).
Medium devsel. Master Capable. Latency=64.
Prefetchable 32 bit memory at 0xf8000000 [0xf8000008].
Bus 0, device 1, function 0:
PCI bridge: Intel 440BX - 82443BX AGP (rev 3).
Medium devsel. Master Capable. Latency=128. Min Gnt=140.
Bus 0, device 7, function 0:
ISA bridge: Intel 82371AB PIIX4 ISA (rev 2).
Medium devsel. Fast back-to-back capable. Master Capable. No bursts.
Bus 0, device 7, function 1:
IDE interface: Intel 82371AB PIIX4 IDE (rev 1).
Medium devsel. Fast back-to-back capable. Master Capable. Latency=64.
I/O at 0x1000 [0x1001].
Bus 0, device 7, function 2:
USB Controller: Intel 82371AB PIIX4 USB (rev 1).
Medium devsel. Fast back-to-back capable. IRQ 9. Master Capable. Latency=64.
I/O at 0x1020 [0x1021].
Bus 0, device 7, function 3:
Bridge: Intel 82371AB PIIX4 ACPI (rev 2).
Medium devsel. Fast back-to-back capable.
Bus 0, device 12, function 0:
Multimedia audio controller: Unknown vendor Unknown device (rev 3).
Vendor id=1073. Device id=c.
Medium devsel. IRQ 10. Master Capable. Latency=64. Min Gnt=5.Max Lat=25.
Non-prefetchable 32 bit memory at 0xf4000000 [0xf4000000].
Bus 0, device 13, function 0:
Ethernet controller: Silicon Integrated Systems Unknown device (rev 2).
Vendor id=1039. Device id=900.
Medium devsel. Fast back-to-back capable. IRQ 11. Master Capable. Latency=173. Min Gnt=52.Max Lat=11.
I/O at 0x1400 [0x1401].
Non-prefetchable 32 bit memory at 0xf4008000 [0xf4008000].
Bus 1, device 0, function 0:
VGA compatible controller: ATI Unknown device (rev 122).
Vendor id=1002. Device id=475a.
Medium devsel. Fast back-to-back capable. IRQ 11. Master Capable. Latency=66. Min Gnt=8.
Prefetchable 32 bit memory at 0xf5000000 [0xf5000008].
I/O at 0x9000 [0x9001].
Non-prefetchable 32 bit memory at 0xf4100000 [0xf4100000].

Neste exemplo, só nos interessa a última sessão, VGA compatible controller, que corresponde a uma placa gráfica ATI.

Nesta sessão estão definidas duas regiões de memória: uma non-prefetchable, que corresponde aos registos da placa e outra prefetchable, que corresponde à memória de vídeo (frame-buffer).

É exatamente esta segunda região (prefetchable) que convém configurar, para passar a usar o modo write-combining.

Para isso, basta executar o seguinte comando:

# echo "base=0xf5000000 size=0x800000 type=write-combining" > /proc/mtrr

Onde "base" representa o início da memória de vídeo que havia sido obtido no ficheiro /proc/pci e size corresponde à quantidade de memória da placa, expressa em numeração hexadecimal.

Neste exemplo, o valor 0x800000 corresponde a 8Mb, mas se a placa tivesse 16Mb teria sido usado 0x1000000 e 32Mb corresponderia a 0x2000000.

Para que que esta configuração passe a ficar ativa por omissão, este comando deve ser adicionado ao fim do arquivo /etc/rc.d/rc.local. Desta forma, passa a ser executado sempre que o sistema arranca.

Os resultados obtidos dependem bastante das aplicações usadas. Por exemplo, se o X só é usado para fazer processamento de texto, é natural que não se note qualquer diferença. No entanto, quando se usam gráficos 3D e vídeo, já se nota uma grande diferença.

Outras dicas deste autor

Você perdeu seus arquivos .*?

Como remover arquivos CORE

Comandos avançados do PINE

Aumente a sua área de swap

Os melhores do planeta

Leitura recomendada

Removendo kernel antigo no Fedora de forma simples

Instalação pratica do novo kernel 2.6.20

Os "patches ck1" de Con Kolivas estão de volta

Blog linuxkenrelstuff . blogspot . com

Slackware 10.1 SATA k8nNeoPlatinum

  

Comentários
[1] Comentário enviado por jllucca em 02/07/2003 - 14:46h

tentei usar a dica, mas não funcionou...

fiz como pedido, dei um echo enviando ele pra /proc/mtrr. Mas, o arquivo não mudou NADA.

Continuou como estava antes....

[2] Comentário enviado por arknoid em 02/07/2003 - 14:56h

Só podia ser tu neh fanho....
deixa de ser mentiroso...
depois na aula t emostro como funciona o verdugo...com todo respeito
e o usuário ntpy tah bombando ainda!!!

[3] Comentário enviado por flipe em 14/11/2004 - 12:34h

eu tb tentei mas ele naum aceita... ele naum me deixa criar o arquivo em /proc... tentei usa um "chmod u+w /proc" e "chmod -R /proc" e ele naum aceita.. tentei criar o arquivo antes com um touch ma tb naum vai!!!

em qual distru tu fez issu, eu usu um debian sarge!!!!

alias.. aqui nem tem essi arquivo!!!


valeu!!!!

[4] Comentário enviado por marx599 em 14/04/2006 - 11:32h

Kra sua dica eh muito boa vou tentar agora.

Vlw.

Marx Humberto....

[5] Comentário enviado por scoob em 26/04/2007 - 13:39h

Seria melhor se o colega tivesse postado a origem da dica, como por exemplo aqui:

http://dicaslinux.linuxsecurity.com.br/index.php?modulo=artigos&id=108

Lá está completo e faria com que todo mundo pudesse pelo menos entender o que estava fazendo, com detalhes.

Mas valeu bastante a contribuição, vou testar pra ver se funciona

Espero que não me entenda mal.. :>))

Abraços



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts