Guía de Aceleración 3D por Hardware
1.
Introducción
¿Qué es la aceleración 3D por hardware y por qué quiero
tenerla?
Con la aceleración 3D por hardware, el renderizado tridimensional usa
el procesador gráfico en su tarjeta de vídeo en vez de ocupar valiosos
recursos de la CPU para dibujar imágenes 3D. También se le conoce como
"aceleración por hardware" en vez de "aceleración por software" debido
a que sin esta aceleración 3D, la CPU está obligada a dibujar todo por
sí misma usando las bibliotecas de renderizado por software de Mesa,
lo que ocupa una considerable potencia de procesamiento. Aunque Xorg
típicamente permite aceleración 2D por hardware, a menudo carece de
aceleración 3D por hardware. La aceleración tridimensional vía
hardware es valiosa en situaciones que requieran renderizado de
objetos 3D tales como juegos, CAD 3D y modelado.
¿Cómo obtener aceleración 3D por hardware?
En muchos casos existen controladores, tanto binarios como de código
abierto. Los controladores de código abierto son de preferencia ya que
estamos usando Linux y el código abierto es uno de sus principios
básicos. En ocasiones, los controladores binarios son la única opción,
especialmente si su tarjeta de vídeo es tan nueva que los controladores
de código abierto aún no han sido escritos para soportar sus
características. Los controladores binarios incluyen
x11-drivers/nvidia-drivers para las tarjetas nVidia y
x11-drivers/ati-drivers para tarjetas AMD/ATI.
¿Qué es DRI?
La Infraestructura de
Renderizado Directo (Direct Rendering Infrastructure), también
conocida como DRI (por sus siglas en inglés), es un marco de
referencia para permitir el acceso directo al hardware gráfico de
manera segura y eficiente. Incluye cambios al servidor X, a muchas
bibliotecas clientes y al núcleo. El uso principal de DRI es crear
implementaciones de OpenGL rápidas.
¿Qué es DRM y cómo se relaciona con el Xorg normal?
El DRM (Direct Rendering Manager, o gestor de renderizado directo) es
una mejora a Xorg que agrega aceleración 3D a las tarjetas
mediante la adición de un módulo del núcleo necesario para el
renderizado directo.
Propósito
Esta guía es para aquellas personas que no pueden hacer funcionar el
renderizado directo tan solo usando Xorg. El DRM funciona para los
siguientes controladores:
- 3dfx
- intel
- matrox
- nouveau
- rage128
- radeon
- mach64
- sis300
- via
Vea la página DRI para
más información y documentación.
2.
Instale Xorg y configure su núcleo
Instale Xorg
Por favor, lea nuestra Guía de
Configuración de Xorg para tener Xorg funcionando.
Configure su núcleo
Investigue cuál es su chipset y active solo ése.
Listado de Código 2.1: Chequear su chipset AGP |
# emerge pciutils; lspci | grep AGP
# 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
|
Si su chipset no está reconocido por el núcleo, puede que tenga éxito
pasando el parámetro del núcleo agp=try_unsupported a su gestor
de arranque. Ésto usará las rutinas genéricas de Intel para el soporte
de AGP. Para agregar este parámetro, edite el archivo de configuración
de su gestor de arranque.
Casi todos los núcleos deberían tener esas opciones. Ésto fue
configurado usando el núcleo gentoo-sources
Listado de Código 2.2: Configurar el núcleo |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 22 2007-02-14 20:12 /usr/src/linux -> linux-2.6.18-gentoo-r4
# cd /usr/src/linux
# make menuconfig
|
Listado de Código 2.3: Opciones de make menuconfig |
Processor type and features --->
<*> MTRR (Memory Type Range Register) support
Device drivers --->
Graphics support --->
<M> /dev/agpgart (AGP Support) --->
<M> Intel 440LX/BX/GX, I8xx and E7x05 support
<M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
<M>
|
Compile e instale su núcleo
Listado de Código 2.4: Compilar e instalar el núcleo |
# make && make modules_install
|
No se olvide de configurar grub.conf o
lilo.conf y luego ejecutar /sbin/lilo si usa LILO.
Añada su usuario al grupo "video"
A continuación, añada su(s) usuarios al grupo "video", tal y como
se explica en el manual:
Listado de Código 2.5: Añadiendo un usuario al grupo video |
# gpasswd -a username video
|
3.
Configure el renderizado directo
Configurar Xorg
Normalmente, tan solo con añadir a su usuario al grupo video
es suficiente para activar el renderizado directo. Sii embargo, puede
que necesite crear un fichero en /etc/X11/xorg.conf.d/.
Puede ponerle el nombre que desee, simplemente asegúrese de que
acaba en .conf. Abra su editor de texto favorito y cree
un fichero con lo siguiente:
Listado de Código 3.1: /etc/X11/xorg.conf.d/10-dri.conf |
Section "Device"
Driver "radeon"
EndSection
Section "dri"
Mode 0666
EndSection
|
Cambios a /etc/conf.d/modules
Necesitará agregar el nombre del módulo que su tarjeta usa al archivo
/etc/conf.d/modules para asegurarse que éste sea cargado
automáticamente cuando se inicie el sistema.
Listado de Código 3.2: Editar /etc/conf.d/modules |
modules="intel-agp"
|
Nota:
Si compiló agpgart como módulo también tendrá que agregarlo al
fichero /etc/conf.d/modules.
|
4.
Probar la aceleración 3D
Reinicie al nuevo núcleo
Reinicie su computadora con el nuevo núcleo e ingrese como usuario
normal. Es hora de ver si tiene el renderizado directo y cuan bueno
es. Los programas glxinfo y glxgears son parte del
paquete mesa-progs, de manera que asegúrese que esté instalado
antes de intentar ejecutarlos.
Listado de Código 4.1: Probar el renderizado |
$ startx
$ glxinfo | grep rendering
direct rendering: Yes
$ glxgears
|
Nota:
La cifra de FPS podría estar limitada por la tasa de refrescamiento de
la pantalla, así que tenga esto en cuenta si glxgears solo
reporta unos 70-100 FPS. El juego games-fps/ut2004-demo u otros
juegos 3D son herramientas superiores para comparar el desempeño, ya que
demuestra resultados del mundo real.
|
Obtenga el máximo del renderizado directo
Si quiere ajustar aún más características, revise la matriz de
características en el sitio Web de DRI o la lista
de características en Sourceforge.
5.
Solución de problemas
No funciona. No tengo renderizado y no sé porque.
Intente modprobe radeon (o su controlador si no es radeon)
antes de iniciar el servidor X. También, intente compilar agpgart como
parte del núcleo en vez de como módulo.
Cuando inicio startx, obtengo este error: "[drm] failed to load
kernel module agpgart"
Eso es porque compiló agpgart en el núcleo en vez de hacerlo como
módulo. Ignórelo a menos que tenga problemas.
Tengo una Radeon, y quiero que funcione la salida de TV
(TV-Out)
Los controladores desarrollados por el proyecto GATOS han sido agregados al código de Xorg. No
necesitas nada especial para la salida de TV; x11-drivers/xf86-video-ati
trabajará bien.
No funciona. Mi tarjeta es tan increíblemente nueva y fenomenal
que no está reconocida por completo.
Pruebe los controladores binarios. Para tarjetas AMD utilice
ati-drivers, puede encontrar una lista en
http://support.amd.com/us/gpudownload/Pages/index.aspx.
Si éstos no soportan su tarjeta, entonces use fbdev. Es lento,
pero funciona.
Tengo una tarjeta PCI y no funciona. ¡Ayuda!
Cree un fichero de configuración en
/etc/X11/xorg.conf.d/, póngale el nombre que desee, pero
asegúrese de que termina en .conf. Añada lo siguiente a
este fichero:
Listado de Código 5.1: /etc/X11/xorg.conf.x/10-pcimode.conf |
Section "Device"
Option "ForcePCIMode" "True"
EndSection
|
6.
Referencias
- http://forums.gentoo.org/viewtopic.php?t=46681
- http://forums.gentoo.org/viewtopic.php?t=29264
- http://dri.freedesktop.org/
Comentarios y/o sugerencias
Para cualquier sugerencia, pregunta, etc. envíe un correo electrónico
a Donnie Berkholz.
El contenido de este documento, a no ser que se especifique
expresamente, está registrado bajo los términos de la licencia
CC-BY-SA-2.5. Se aplican las
Pautas de
Utilización del logotipo y nombre de Gentoo.
|