Aviso :
Este documento não é válido e não é mais mantido.
|
Guia de aceleração de Hardware 3D
1.
Introdução
O que é aceleração de hardware 3D e por que quero usá-la?
Com a aceleração de hardware 3D, a construção de gráficos tridimensionais usa o
processador de sua placa gráfica ao invés de usar recursos da CPU para desenhar
imagens 3D. É também chamado de "aceleração de hardware" ao invés de
"aceleração de software" porque sem a aceleração 3D a sua CPU é forçada a
desenhar tudo usando as bibliotecas de construção da Mesa, o que usa bastante
poder de processamento. Enquanto o Xorg tipicamente suporta aceleração de
hardware 2D, normalmente ele não tem aceleração de hardware 3D. Aceleração de
hardware em três dimensões é útil em situações que precisam da construção de
objetos 3D como jogos, 3D CAD e modelamento.
Como obtenho aceleração de hardware 3D?
Em muitos casos, existem drivers binários e de código aberto. Drivers de código
aberto são preferíveis, já que estamos usando Linux e código aberto é um de seus
princípios. Às vezes, drivers binários são a única opção, como com as placas da
nVidia. Drivers binários incluem media-video/nvidia-kernel e
media-video/nvidia-glx para placas da nVidia, media-video/mgavideo para placas
da Matrox e media-video/ati-drivers para placas da ATI. Outros drivers de código
aberto incluem media-video/kyro-kernel para placas KyroII e
media-video/ati-gatos para placas da ATI, que visam suportar as capacidades de
vídeo da ATI mais completamente.
O que é DRI?
A Direct Rendering
Infrastructure, também conhecida como DRI, é uma moldura para permitir o
acesso direto ao hardware gráfico de maneira segura e eficiente. Inclui mudanças
ao servidor de X, a diversas bibliotecas de clientes e ao kernel. O primeiro
grande uso para o DRI é criar implementações de OpenGL rápidas.
O que é X11-DRM e como ele relaciona-se com o Xorg normal?
O X11-DRM é uma melhoria ao Xorg que inclui aceleração 3D para placas,
adicionando os módulos de kernel necessários para direct rendering.
Propósito
Este guia é para pessoas que não conseguem fazer direct rendering funcionar só
com o Xorg. O X11-DRM funciona com os drivers 3dfx, gamma, intel, matrox,
rage128, radeon, mach64 e sis300 series. Veja a homepage do DRI para mais informações e
documentação.
Feedback
Com sugestões, perguntas, etc..., mande e-mail para Donnie Berkholz.
2.
Instale o Xorg e configure seu kernel
Instale o Xorg
Por favor leia nosso Guia de configuração
do Xorg para que instalar o Xorg e tê-lo funcionando.
Configure seu kernel
Faça sonda para seu chipset e ative só ele.
Listagem de código 2.1: Verificando seu chipset AGP |
# emerge pciutils; lspci | grep AGP
# 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
|
Se seu chipset não for suportado pelo kernel você ainda pode ter algum sucesso
passando agp=try_unsupported como um parâmetro de kernel. Isto irá usar
as rotinas genéricas da Intel para suporte AGP. Para adicionar o parâmetro,
edite seu arquivo de configuração de gerenciador de inicialização!
A maior parte dos kernéis, se não todos, devem ter essas opções. Isto foi
configurado usando gentoo-sources-2.4.20-r5.
Listagem de código 2.2: Configurando o kernel |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 22 May 29 18:20 /usr/src/linux -> linux-2.4.20-gentoo-r5
# cd /usr/src/linux
# make menuconfig
|
Listagem de código 2.3: opções de make menuconfig |
Processor type and features --->
<*> MTRR (Memory Type Range Register) support
Character devices --->
<M> /dev/agpgart (AGP Support)
[M] Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860 support
< > Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
|
Certifique-se de que Direct Rendering Manager (DRM) está desligado. O
pacote X11-DRM irá fornecer seu próprio.
Compile e instale seu kernel
Listagem de código 2.4: Compilando e instalando o kernel |
# make dep && make clean bzImage modules modules_install
# mount /boot
# cp arch/i386/boot/bzImage /boot
|
Se você quiser que seu kernel tenha um nome diferente de bzImage, certifique-se
de copiar para /boot/seunome. Não se esqueça de configurar o grub.conf ou
lilo.conf e rodar /sbin/lilo se você usar LILO.
3.
Instale o X11-DRM e configure direct rendering
Instale o X11-DRM
Listagem de código 3.1: Instalando o X11-DRM |
# emerge x11-drm
|
Configurando o Xorg.conf
Alguns chipsets necessitam que você reconstrua xorg-x11 com
USE="insecure-drivers". Isto se aplica aos chipsets mach64, unichrome e
savage com xorg-x11-6.8.2, e mach64 e unichrome com xorg-x11-6.8.99.x. Usuários
de savage não devem experimentar o xorg-x11-6.8.99.x já que suporte para savage
nesta versão está defeituoso.
Listagem de código 3.2: Reconstruindo o xorg-x11 |
# echo "x11-base/xorg-x11 insecure-drivers" >> /etc/portage/package.use
# emerge xorg-x11
|
Abra o /etc/X11/xorg.conf com seu editor de texto favorito e
edite-o para ativar DRI e GLX.
Listagem de código 3.3: xorg.conf |
...
Section "Module"
Load "dri"
Load "glx"
...
EndSection
...
Section "Device"
Driver "radeon"
...
EndSection
...
Section "dri"
Mode 0666
EndSection
|
Se você estiver usando um driver diferente, troque "radeon" com o seu.
Mudanças no modules.autoload.d
Você precisará adicionar o nome do módulo que sua placa usa no arquivo
/etc/modules.autoload.d/kernel-2.6, para ter certeza de que o
módulo é carregado automaticamente quando seu sistema iniciar.
Listagem de código 3.4: Editando /etc/modules.autoload.d/kernel-2.6 |
intel-agp
|
4.
Teste a aceleração 3D
Reinicie no novo kernel
Reinicie seu computador no novo kernel. Está na hora de ver se você tem direct
rendering e se funciona bem.
Listagem de código 4.1: Testando rendering |
# startx
# glxinfo | grep rendering
direct rendering: Yes
# glxgears
|
5.
Usando as fontes de CVS
Aviso:
Não faça isso se o pacote funcionou.
|
Você precisa de CVS?
Primeiro você deve verificar se o pacote x11-drm funciona. Se não funcionar e
você verificou seus registros para verificar se não é um erro de configuração,
você deve considerar as fontes de CVS. Existem também snapshots diários
disponíveis se você não deseja construir o CVS inteiro.
As fontes de CVS suportam sua placa?
Veja a lista de placas
suportadas do DRI para ver se as fontes de CVS suportam sua placa. Mesmo
se não suportarem, mas suportarem uma placa parecida, experimente-as.
Siga as instruções de CVS
O projeto do DRI tem um próprio documento sobre compilação de CVS. Por favor
leia o
documento e siga as instruções até a parte Instalando para X.org.
Instale do CVS
Verifique se o(s) módulo(s) de DRI do kernel para seu sistema foram construídos:
Listagem de código 5.1: Verificação |
# cd ~/DRI-CVS/build/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel; ls
|
Para a 3dfx Voodoo, você deve ver o tdfx.o. Para a Matrox
G200/G400, você deve ver o mga.o. Para sua ATI Rage 128, você deve
ver o r128.o. Para a ATI Radeon, você deve ver o usar a versão
correta do kernel do Linux. Os kernéis mais recentes nem sempre são suportados.
Instale em sua instalação do X.org. É aconselhável fazer um back up do xorg-x11.
Listagem de código 5.2: Fazendo back-up do Xorg |
# quickpkg xorg-x11
# make install
|
Siga a seção "Configando o Xorg" acima.
Para carregar os módulos apropriados de DRM em seu kernel atual, copie o módulo
de kernel para /lib/modules/`uname -r`/kernel/drivers/char/drm/ e
rode modules-update e reinicie seu servidor de X. Se você não estiver
rodando o kernel em que você irá usá-lo, troque `uname -r`, com o nome
do kernel.
Aviso:
Certifique-se de primeiro descarregar quaisquer módulos antigos de DRI que já
podem estar carregados. Note que alguns módulos de DRM requerem que o módulo
agpgart seja carregado primeiro.
|
6.
Ajuste sua performance
Tire o máximo do direct rendering
Algumas opções podem aumentar a performance em 30 por cento (ou mais) do padrão.
Configure-as em /etc/X11/xorg.conf.
Listagem de código 6.1: xorg.conf |
Section "Device"
Option "AGPMode" "4"
Option "AGPFastWrite" "True"
Option "EnablePageFlip" "True"
...
EndSection
|
Se você quiser configurar ainda mais funções, veja a lista
de funções no website do DRI ou a lista de
funções do Sourceforge.
7.
Resolução de problemas
Não funciona. Acabei de compilar meu kernel ou troquei para um
novo.
Quando você reconstruir seu kernel ou trocar para outro kernel, você terá que
reconstruir o módulo de kernel. Note que você não precisá reinstalar o xorg-x11,
mas você precisará reinstalar o x11-drm.
Não funciona. Não tenho rendering, e não sei dizer o motivo.
Tente fazer insmod radeon antes de iniciar o servidor de X. Também, tente
construir o agpgart no kernel ao invés de como módulo.
Quando faço startx, obtenho este erro: "[drm] failed to load kernel
module agpgart"
Isto é porque você compilou o agpgart no kernel ao invés de como módulo.
Ignore ao menos que você tenha problemas.
Direct rendering não funciona, e em meu /var/log/Xorg.0.log tenho um erro
sobre versão de driver baixa demais
Você não está usando o driver x11-drm. Verifique se você compilou DRM e o driver
no kernel; você não deve fazer isso.
Eu tenho uma Radeon, e quero TV-Out.
Veja os drivers ati-gatos. emerge -s gatos.
Não funciona. Minha placa é novíssima e fantástica e não tem nenhum
suporte.
Experimente os drivers binários. Para os ati-drivers, uma lista existe em
http://www.schneider-digital.de/html/download_ati.php. Se eles não
suportarem, use fbdev. É lento, mas funciona.
Eu tenho uma placa PCI e ela não funciona. Ajuda!
Na seção "Device" ative ForcePCIMode.
Listagem de código 7.1: Enabling ForcePCIMode |
Option "ForcePCIMode" "True"
|
8.
Reconhecimentos
-
Christopher Webber por sugerir uma questão de resolução de problemas sobre
trocar ou recompilar kernéis
-
Steve, por sugerir constiência nos casos de dri e DRI no
XF86Config
9.
Referências
- http://forums.gentoo.org/viewtopic.php?t=46681
- http://forums.gentoo.org/viewtopic.php?t=29264
- http://dri.freedesktop.org/
- http://www.retinalburn.net/linux/dri_status.html
O conteúdo deste documento está licenciado pela licença Creative Commons -
Attribution / Share Alike.
|