Guía de Xorg/Aceleración 3D por Hardware

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Xorg/Hardware 3D acceleration guide and the translation is 100% complete.

Other languages:
English • ‎español • ‎italiano • ‎日本語 • ‎한국어 • ‎русский • ‎中文(中国大陆)‎

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.

¿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.

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 #cd /usr/src/linux
root #make menuconfig
KERNEL Hardware 3D acceleration options
Processor type and features --->
<*> MTRR (Memory Type Range Register) support
Device drivers --->
   Graphics support --->
   <M> /dev/agpgart (AGP Support) --->
      (The agpgart option is not present on 64-bit kernels;
      just choose your chipset support.)
      <M> Intel 440LX/BX/GX, I8xx and E7x05 support
      (Enable your chipset instead of the above.)
   <M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
      <M> (Select your graphics card from the list)

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.

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:

ARCHIVO /etc/X11/xorg.conf.d/10-dri.conf
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.

ARCHIVO /etc/conf.d/modules
modules="intel-agp" # Substitute with your driver
Nota
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.

Nota
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:

ARCHIVO /etc/X11/xorg.conf.x/10-pcimode.confAdding ForcePCI Mode
Section "Device"
  Option "ForcePCIMode" "True"
EndSection

Recursos externos