Gentoo Logo

Guía de Aceleración 3D por Hardware

Contenido:

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)
(La salida de la orden puede que no sea igual a la suya debido a
hardware distinto)

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
(Asegúrese que /usr/src/linux apunte a su núcleo actual)
# 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) --->
      (La opción agpgart no está presente en los núcleos de 64 bits; escoja el soporte para su chipset)
      <M> Intel 440LX/BX/GX, I8xx and E7x05 support
      (Active su chipset en lugar del de arriba)
   <M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
      <M> (Seleccione su tarjeta gráfica de la lista)

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"
 (Reemplace radeon con el nombre del manejador).
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

(Cambie el nombre del módulo acorde a su caso.)
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
(No hay necesidad de cargar los módulos para su controlador o agpgart,
si compiló agpgart como módulo)
(Serán cargados automáticamente)
$ glxinfo | grep rendering
direct rendering: Yes
(Si dice "No", no tiene aceleración 3D)
$ glxgears
(Pruebe sus cuadros por segundo (FPS) al tamaño predeterminado)
(Debería ser significativamente mayor que antes de configurar DRM.
Hágalo mientras el CPU esté lo más inactivo posible)

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

  1. http://forums.gentoo.org/viewtopic.php?t=46681
  2. http://forums.gentoo.org/viewtopic.php?t=29264
  3. http://dri.freedesktop.org/

Comentarios y/o sugerencias

Para cualquier sugerencia, pregunta, etc. envíe un correo electrónico a Donnie Berkholz.



Imprimir

Página actualizada 25 de diciembre, 2012

Sumario: Este documento es una guía para hacer funcionar la aceleración 3D usando DRM con Xorg en Gentoo Linux.

Donnie Berkholz
Autor

Jorge Paulo
Editor

Joshua Saddler
Editor

John Christian Stoddart
Traductor

Andrés Pereira
Traductor

Manuel Peral González
Traductor

Donate to support our development efforts.

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