Guía de Xorg/Aceleración 3D por Hardware
Este documento es una guía para conseguir hacer trabajar la aceleración 3d usando DRM con Xorg en Gentoo Linux.
Introducción
¿Qué es la aceleración 3D por hardware y por qué la quiero?
Con la aceleración 3D mediante hardware, el rederizado tridimensional usa el procesador de gráficos en su tarjeta de video en lugar de utilizar valiosos recursos del procesador con la finalidad de generar gráficos 3D. Además, se nombra como "aceleración por hardware" en vez de "aceleración por software" porque sin este tipo de aceleración 3D su CPU es forzado a graficar todo por sí mismo usando las bibliotecas de Mesa para renderizado, lo cuál consume una parte de los recursos de procesamiento. Aunque Xorg normalmente soporta aceleración 2D por hardware, con frecuencia carece de aceleración 3D por hardware. La aceleración tridimensional es valiosa en situaciones que requieren el renderizado de objetos 3D: juegos, 3D CAD y modelado.
While Xorg typically supports 2D hardware acceleration, it often lacks hardware 3D acceleration. Three-dimensional hardware acceleration is valuable in situations requiring rendering of 3D objects such as games, 3D CAD, and modeling.
¿Como consigo aceleración 3D por hardware?
En muchos casos, se encuentran disponibles controladores binarios o de código abierto. Los controladores de código abierto son preferibles porque usamos Linux y el código abierto es uno de sus principios fundamentales. A veces, los controladores binarios son la única opción, especialmente si su tarjeta gráfica es tan moderna que no han sido escritos, aún, controladores de código abierto que soportan sus capacidades. Entre los controladores binarios podemos encontrar x11-drivers/nvidia-drivers para tarjetas de video nVidia y x11-drivers/ati-drivers para tarjetas AMD/ATI.
¿Qué es DRI?
La Infraestructura de Renderizado Directo (DRI, por sus siglas en inglés), es una interfaz que permite acceso directo al hardware de gráficos de una manera eficiente y segura. Incluye cambios en el servidor X, en numerosas bibliotecas de cliente y el núcleo. DRI es mayormente empleado en la creación de implementaciones eficientes para OpenGL.
¿Qué es DRM y como se relaciona con una instalación típica de Xorg?
El Gestor de Renderizado Directo es una "mejora" para Xorg que agrega aceleración 3D para tarjetas añadiendo el módulo de núcleo necesario para el renderizado directo.
Objetivo
Esta guía es para quienes no pueden conseguir el renderizado directo solo mediante Xorg. DRM funciona con los siguientes controladores:
- 3dfx
- intel
- matrox
- nouveau
- rage128
- radeon
- mach64
- sis300
- via
Véase la paǵina principal de DRI para más información y la documentación.
Instalar Xorg y configurar el núcleo
Instalar Xorg
Por favor, revise la Guía de configuración para Xorg para obtener y utilizar Xorg.
Configure su núcleo
Ubique su chipset con lspci. Se utilizará solo un elemento de la lista generada.
root #
emerge --ask pciutils
root #
lspci | grep AGP
# 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
La salida anterior puede no coincidir con la que obtenga, debido a diferencias en el hardware.
Certain kernel options will be required, others may cause problems. Hardware specific resources concerning which kernel option for which hardware exist within this wiki and elsewhere.
Si su chipset no es soportado por el kernel, podría encontrar cierto éxito al establecer agp=try_unsupported
como parámetro del kernel. Esto usara las rutinas genéricas de Intel para soporte AGP. Al añadir este parámetro, ¡cambia el archivo de configuración del programa de arranque!
La mayoría, si no todos, los núcleos deberían poseer estas opciones. En aquel ejemplo fue configurado un kernel sys-kernel/gentoo-sources estándar.
root #
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 de que /usr/src/linux apunte a su kernel actual.
root #
eselect kernel list
root #
eselect kernel set
root #
cd /usr/src/linux
root #
make menuconfig
root #
cd /usr/src/linux
root #
make menuconfig
Most, if not all, kernels should have these options set. In any case, options labeled <M> are compiled as modules and loaded-as-necessary, thus being very unlikely to break anything if not required.
This was configured using a standard sys-kernel/gentoo-sources kernel.
'"`UNIQ--pre-00000007-QINU`"'
Compilar e instalar su kernel
root #
make && make modules_install
No olvide configurar grub.conf o lilo.conf y ejecutar /sbin/lilo
si usa LILO.
When using LILO, issue:
root #
lilo
When using GRUB2, run:
root #
grub-mkconfig -o /boot/grub/grub.cfg
Añadir su usario en el grupo video
A continuación, incluya su usuario en el grupo video:
root #
gpasswd -a $USER video
Configurar el renderizado directo
Configurar Xorg
Afortunadamente, solo añadir su usuario al grupo video
es suficiente para activar el renderizado directo. Sin embargo, podría también necesitar crear una archivo en /etc/X11/xorg.conf.d/. Puede nombrarlo como desee, solo asegúrese de que el nombre termine en .conf. Ejecute su editor de texto favorito y cree un archivo con los siguiente en aquel:
Section "Device"
Driver "radeon"
EndSection
Section "dri"
Mode 0666
EndSection
Reemplaze radeon con el nombre de su controlador.
Modificaciones en /etc/conf.d/modules
Podría necesitar añadir el nombre del módulo que su tarjeta utiliza en /etc/conf.d/modules para asegurárse de que el módulo es cargado automáticamente cuando el sistema arranca.
modules="intel-agp" # Substitute with your driver
Si compiló
agpgart
como un módulo, necesitará también añadirlo a /etc/conf.d/modules.Probar la aceleración 3D
Reinicie con el nuevo núcleo
Reinicie su computador con el nuevo kernel e inicie sesión como un usuario normal. Es tiempo de saber si posee el rederizado directo y qué tan bueno es. Los comandos glxinfo
y glxgears
son parte del paquete x11-apps/mesa-progs, así que asegúrese de haberlo instalado antes de intentar ejecutarlos.
user $
startx
No hay necesidad de cargar agpgart o los modulos para su controlador, incluso si los compiló como módulos. Serán cargados automáticamente.
user $
glxinfo | grep rendering
direct rendering: Yes
Si la salida es "No", usted no posee aceleración 3D.
user $
glxgears
Pruebe los cuadros por segundo (FPS) al tamaño predeterminado. El número debe ser significativamente más alto que antes de configurar DRM. Para hacerlo, mantenga el CPU los menos ocupado posible.
Los cuadros por segundo están limitados por la tasa de refresco de la pantalla, asi que mantenga esto en mente si
glxgears
reporta solo alrededor de 70-100 FPS. games-fps/ut2004-demo u otro juego 3D son mejores herramientas de rendimiento, porque proporcionarán información de desempeño en el mundo real.Aproveche al máximo el renderizado directo
Si desea poder configurar más características, por rendimiento u otras razones, revise la matriz de características en la página de DRI o la lista de características en Sourceforge.
Resolución de problemas
No funciona. No renderiza y no puedo encontrar la razón
Utilize modprobe radeon
antes de iniciar el servidor X (reemplace radeon
con el nombre de su controlador). También intente compilar agpgart dentro del kernel en lugar de hacerlo como módulo.
Cuando ejecuto startx, recibo el error: "[drm] failed to load kernel module agpgart"
Esto se debe a que compiló agpgart dentro del kernel en lugar de compilarlo como módulo. Ignórelo a menos que tenga problemas.
Tengo una Radeon, y deseo utilizar TV-Out.
Los controladores originalmente desarrollados por el proyecto GATOS fueron ya incluidos en el código principal de Xorg. No necesita hacer nada especial para utilizar TV-Out; x11-drivers/xf86-video-ati funcionará bien.
No funciona. Mi tarjeta es tan increiblemente moderna y cool que no es soportada del todo
Pruebe con los controladores binarios. Para tarjetas AMD, use ati-drivers
; un listado se encuentra en http://support.amd.com/us/gpudownload/Pages/index.aspx. Si tampoco funcionan, usa fbdev. Es lento, pero funciona.
Tengo una tarjeta PCI y no funciona ¡Ayuda!
Cree un archivo de configuración en /etc/X11/xorg.conf.d/; nombrelo como desee, siempre que termine en .conf. Añádale lo siguiente:
Section "Device"
Option "ForcePCIMode" "True"
EndSection
Recursos externos
- Direct rendering (DRI) using X11-DRM HOWTO en Gentoo forums
- Radeon 7000-9700 DRI CVS Install Guide en Gentoo forums
- http://dri.freedesktop.org/
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Donnie Berkholz (dberkholz) , peesh, nightmorph
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.