Forzar WebRender en Firefox 88

De alguna forma que aún no entiendo, Firefox 88 asumió que todo hardware podría reproducir vp9 sin problemas

Tengo un viejo laptop que data del 2014, pero me funcionaba relativamente bien para cualquier tarea. Hasta que Firefox actualizó a la versión 88 y como dice "Te lo resumo", todo empezó a ir relativamente mal. Ahí de pronto los videos en YouTube se ralentizaban, el audio se entrecortaba, etc. Incluso en las resoluciones más básicas.

Una forma de ver en alta definición y sin problemas era usar mpv (el fork de mplayer) junto a la url, pero no era lo ideal para mí. Demasiado "copypaste" para ver un video.

Así que me puse a investigar y encontré un add-on: h264ify que se suponía arreglaba el problema. Pero no.

Afortunadamente, ese add-on me dio la idea de qué estaba pasando: Youtube ahora utiliza el codec VP9 que no siempre está acelerado por hardware lo que provocaba el problema de rendimiento. Y de alguna forma que aún no entiendo, Firefox 88 asumió que todo hardware podría reproducirlo sin problemas.

No así el codec h264 que es más liviano, ya que tiene restricciones de resolución y frames por segundo (por lo que tengo entendido, no soy experto)

Otra cosa del add-on es forzar a que el video vuelva a ser de 30 fps en lugar de 60. De momento no sé si eso funcionó o no, pero lo dejé activado de todas formas.

Así que si el add-on h264ify no podía forzar a YouTube a que use un codec menos pesado, por lo menos ya sé que tengo que ver la posibilidad de activar la aceleración vía hardware en Firefox. A investigar por Internet.

Voy a about:support de Firefox y en "Composite" dice "Basic". Mal. Ahí está el problema.

Entonces voy a about:config y habilito todos estos switches a true:

  • gfx.webrender.all
  • gfx.webrender.enabled
  • layers.acceleration.force-enabled
  • egl.force-enabled
  • gfx.x11-egl.force-enabled

Ahora hay que reiniciar Firefox. Voy a about:support y ahora en Composite dice "WebRender". Bien.

Abro un video de YouTube. Subo poco a poco de resolución y espero que haya algún problema. Ninguno.

El problema se resolvió.

Como nota: Me funcionó en Linux, si tienes Windows quizás funcione a excepción de la última opción, la que dice X11. Pero no me hago responsable. Quizás desees investigar por tu cuenta.

Puedes ver detalles más técnicos acá:

https://linuxreviews.org/Firefox_Is_Making_WebRender_The_Default_Rendering_Engine_On_Linux_This_Month_And_There_Is_A_Facelift_Coming_In_May

Si quieres llegar más allá y tu hardware lo permite puedes también activar VAAPI (está al final del link anterior). Mi hardware no da para tanto.

UPDATE:

Al parecer no basta con que solamente el "Composite" sea Webrender, también hay que forzar que la decodificación del video sea vía hardware poniendo lo siguiente en true:

media.hardware-video-decoding.force-enabled

Y deshabilitar los codecs que son demasiado pesados para tu hardware, en mi caso, poniendo los siguientes flags en "false":

  • media.ffvpx.enabled
  • media.mediasource.vp9.enabled
  • media.mediasource.webm.enabled