Gentoo Logo

Aviso : Este documento não é válido e não é mais mantido.


Guia de aceleração de Hardware 3D

Conteúdo:

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)
(Sua saída pode não ser igual à acima devido a hardware diferente.)

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
(Certifique-se que /usr/src/linux aponta para seu kernel atual.)
# 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
(Ative seu chipset ao invés do acima.)
< > 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

(Este exemplo é para um kernel 2.4)
# 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

(Adicione a opção de USE insecure-drivers se você usar um dos chipsets mencionados acima)
# 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

(Mude o nome do módulo conforme necessário.)
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
(Não há necessidade de carregar módulos para seu driver ou agpgart, se você compilou agpgart como 
módulo.)
(Eles serão carregados automaticamente.)
# glxinfo | grep rendering
direct rendering: Yes
(Se disser "No", você não tem aceleração 3D.)
# glxgears
(Teste seu frames per second (FPS) no tamanho padrão. O número deve ser )
(significantemente maior que antes de instalar o x11-drm. Faça isso quando a CPU estiver o mais ociosa
possível.)

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
(Isto faz back up de seu pacote 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"
  (Isto aumentou os FPS de 609 para 618.)
  Option     "AGPFastWrite" "True"
  (Não teve efeito mensurável, mas pode aumentar a instabilidade de seu computador.)
  (Você também pode ter que ligá-lo em seu BIOS.)
  Option     "EnablePageFlip" "True"
  (Isto aumentou as FPS de 618 para 702. Também é considerado "arriscado" mas poucas pessoas relataram 
  problemas.)
  ...
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

  1. Christopher Webber por sugerir uma questão de resolução de problemas sobre trocar ou recompilar kernéis
  2. Steve, por sugerir constiência nos casos de dri e DRI no XF86Config

9.  Referências

  1. http://forums.gentoo.org/viewtopic.php?t=46681
  2. http://forums.gentoo.org/viewtopic.php?t=29264
  3. http://dri.freedesktop.org/
  4. http://www.retinalburn.net/linux/dri_status.html


Imprimir

Atualizado 1 de fevereiro de 2006

A versão original desta tradução não é mais mantida

Resumo: Este documento é um guia para configurar aceleração 3D usando X11-DRM com Xorg no Gentoo Linux.

Donnie Berkholz
Autor

Jorge Paulo
Editor

Marcelo Góes
Tradutor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.