Otimizando a velocidade da placa gráfica

Publicado por rudolf ghysio schaarschmidt em 02/07/2003

[ Hits: 11.509 ]

 


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

PDF no Linux

Como remover arquivos CORE

Dividindo arquivos grandes em vários disquetes

CBL - Certificação Brasileira em GNU/Linux

Barrando acesso de hosts a sua máquina

Leitura recomendada

Como compilar o kernel do zero no Gentoo Linux

Module-assistent, coisa linda!

Kernel 2.6.37 - slh rodando perfeitamente no aptosid após dist-upgrade

Driver Wireless RTL8191SEvA no Debian

Ubuntu e Debian-like com mais de 4GB de RAM

  

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