Activar OpenGL en Raspbian

En mi instalación actual de Raspbian Stretch he visto que la aceleración gráfica estaba activada. Pero no sé si la he activado yo, o venía así por defecto. Así que por si acaso, voy a explicar aquí los pasos.

Esta opción estaba en beta hasta no hace mucho, pero ya se la considera estable. Aún así, algunas veces he visto que el menú de inicio al abrirlo para arrancar alguna aplicación aparece en negro y luego ya si carga.

Activar este driver libera al procesador de la carga gráfica del escritorio pasando a realizarla la GPU. Además podréis instalar algunos programas que lo necesitan, como por ejemplo:

  • Stellarium – software educativo de astronomía
  • NeverBall – un juego de laberinto con una bola en equilibrio
  • glTron – un juego estilo la carrera de motos de la película Tron
  • OpenArena – un juego tipo Quake
  • Super Tux Kart – un juego tipo Mario Kart
  • o el emulador de x86 ExaGear Desktop

Esta opción hay que configurarla usando raspi-config desde una Terminal ya que no está entre las opciones de configuración en modo gráfico.

OJO que solo está disponible para Raspberry Pi 2 y Raspberry Pi 3, no es compatible con Raspberry Pi 1, Raspberry Pi Zero ni Raspberry Pi Zero W.

OpenGL_raspbian

Abrimos una Terminal y escribimos:

sudo raspi-config

opengl-raspi-config

Luego vamos a la opción Advanced Options:

advanced-options2

Y ahora a GL Driver:

opengl-gl-driver

Ahora vemos tres opciones:

opengl-full-kms

  1. GL (Full KMS)    OpenGL desktop driver with full KMS
  2. GL (Fake KMS)  OpenGL desktop driver with full KMS
  3. Legacy               Original non-GL desktop driver

Aquí la indicación KMS se refiere a Kernel Mode-Setting, que hace uso de un modo avanzado de integración con el kernel, el núcleo del sistema operativo, lo que provoca que sea más eficiente y con mejor gestión de los errores. GL (Full KMS) es la opción recomendada ya que cumple con lo anterior, pero en algunos casos el denominado GL (Fake KMS) es más compatible y rápido por obviar esa compatibilidad, así que será cuestión de probarlo como segunda opción en caso de que algo concreto no nos funcione. Por último la opción Legacy que desactiva la aceleración gráfica y vuelve al driver original de Raspberry Pi.

Así que elegimos la opción G1 GL (Full KMS) OpenGL desktop driver with full KMS y le damos a OK y luego a Finish y reiniciamos para que se active todo.

  • Monco

    Pues me se a ocurrido ver si ubuntu mate tenia esta opción y la tiene. La he activado y me esta funcionando por ahora sin problemas.

    • He mirado el foro de Ubuntu Mate y parece que lo incluyeron en fase beta y lo han ido puliendo, por lo que debería ir bien. De todas formas cuando lo pruebes un tiempo comenta por aquí ¿qué tal el rendimiento? y si ¿hace cosas raras al abrir aplicaciones o en los menús?
      gracias

  • He cometido la torpeza de activarlo “GL (Full KMS)” sin comprobar antes el desempeño de OpenGL, creo que no estaba activado. Después de activarlo y reiniciar he ejecutado el programa “glxgears”, obtengo unos 75 FPS (Frames Por Segundo) por si a alguien le sirve para comparar entre un antes y un después.

    • Sin OpenGL no pasa de 30fps y además parpadea y da pantallazos.

  • CrisCrawer

    Cuando activo (Full KMS) me cambia la resolución de la pantalla, y da igual lo que tenga en config.txt, no me varía la resolución. No sabría a que resolución se pone, es 4:3 será 1024×640 o por ahí… lo pongo en Fake KMS y sí me vuelve a los 1080p de resolución

    • Depende de las TV o monitores pero el fake es igual de bueno que el full. Es un tema de interconnexion con el kernel, el núcleo del sistema operativo.

  • Eduardo Polaris

    hola, active opengl pero solo por probar, pero rara vez uso mi RPi 3 conectada a un monitor accedo a ella mediante VNC y ahora la resolucion como comentan mas abajo la redujo y ya no me permite cambiarla ni modificando config.txt y antes si y la ventana de VNC cambiaba segun la resolucion, y no se que hacer alguna idea de como volver

    • Vuelve a entrar en raspi-config y elige la 3° opción.