Nuestros compañeros de MuyComputer publicaron la semana pasada un extenso artículo sobre las cosas que NVIDIA debería cambiar si quiere mejorar, abarcando tanto aspectos comerciales como técnicos.

Los que hayan seguido el mercado de las GPU habrán visto que NVIDIA lleva años dominando a placer tras romper el equilibrio que mantenía con AMD, cuya división de GPU ha sobrevivido en los últimos tiempos sobre todo por el minado de criptodivisas y el cálculo computacional. Sin embargo, cuando se trata ciertos sectores como el gaming, la compañía de Santa Clara muestra o parece mostrar un claro dominio sobre su eterna rival.

La situación de la competencia entre los gigantes de las GPU empeora cuando se trata de los usuarios de Linux. Si bien las cosas se han equilibrado cuando se trata de las gamas medias, en las gamas altas NVIDIA sigue mostrando un dominio claro frente a AMD, una situación que se da gracias a unos drivers que aprovechan mejor el potencial de las GPU, pero siempre ofreciendo ciertos problemas a nivel de integración.

Sí, desgraciadamente, los usuarios de GNU/Linux tenemos que lidiar con ciertos problemas adicionales en comparación con los de Windows. Estos son los cinco puntos a mejorar por parte de NVIDIA ante los usuarios del sistema Open Source.

Mejorar la experiencia más allá de GNOME

¿No usas GNOME y ves que tu NVIDIA te da problemas de tearing y/o con la sincronización vertical? Tranquilo, no eres el único, ya que fuera de GNOME, e incluso dentro dependiendo de los casos, NVIDIA puede dar problemas a menos que se hagan ciertos ajustes adicionales.

En casos como el de KDE se puede poner fin a esos problemas de forma definitiva, pero claro, requiere de forzar la activación del triple buffering en Kwin en caso de no funcionar el forzado de la sincronización vertical desde la configuración del compositor.

En otros entornos como Cinnamon el problema no parece disiparse del todo incluso tras aplicar ciertas medidas, aunque están trabajando para corregirlo; lo cual convierte a GNOME en posiblemente la mejor alternativa para lidiar con los problemas de tearing y con la sincronización vertical con su configuración por defecto.

Salvo casos extremos, esto no significa que la experiencia con NVIDIA sobre otro escritorio que no sea GNOME vaya a suponer un padecimiento. Como se ha comentado, hay ajustes que se pueden retocar para afinarla, pero ofrecer una experiencia óptima con cualquier entorno es una asignatura pendiente de NVIDIA con los usuarios de GNU/Linux.

Aceptar los estándares en Wayland

Mientras que todos los desarrolladores de drivers han optado por GBM como API de buffer para Wayland, NVIDIA ha decidido apostar ahí por su propia solución con EGLStreams, que en estos momentos solo está soportado por GNOME entre los grandes entornos de escritorio, algo que podría explicarse en la política de “anteponer a los usuarios y sus necesidades” aplicada por los encargados del entorno de escritorio. Esto fue explicado hace dos años por Christian Schaller, empleado de Red Hat, en el foro de Phoronix tras confirmarse que Mutter soportaría EGLStreams, una decisión que no ha gustado a mucho en la comunidad porque ha sido interpretada como una victoria de una compañía frente a un estándar, GBM, que pretende ser independiente del fabricante.

Por otro lado, el uso del driver privativo de NVIDIA bajo Wayland no está recomendado ya que el desempeño en general es muy inferior al ofrecido por AMD con AMDGPU e Intel (o por lo menos yo he tenido problemas). Posiblemente la compañía de Santa Clara tendría aquí que poner de su parte y adoptar los estándares establecidos en un principio para así garantizar una mejor experiencia de cara a sus propios usuarios.

Realizar un screencast sin tearing

En caso de realizarse un screencast usando el driver oficial de NVIDIA, se necesita inhabilitar el flipping para evitar una gran cantidad de errores relacionados con tearing y elementos que se solapan.

Lo malo es que sin el flipping podemos encontrarnos con cierto tearing en las grabaciones de las pantallas, que según el entorno de escritorio utilizado puede ser más o menos acusado. En resumidas cuentas, hacer un screencast totalmente limpio con el driver oficial de NVIDIA es simple y llanamente imposible, y es un punto que la compañía de Santa Clara tiene que corregir si quiere conservar su liderazgo en Linux.

Combinar Firefox y NVIDIA, una mala idea

Combinar NVIDIA y Firefox no es buena idea, ni siquiera cuando se hace con Nouveau. Problemas de tearing, sincronización vertical y con el desplazamiento suave son cosas que los usuarios se encuentran cuando realizan la combinación mencionada.

Afortunadamente, esto se puede arreglar forzando la aceleración por hardware, pero lo óptimo sería tener una experiencia perfecta out of the box, cosa que sí ofrecen los navegadores basados en Chromium tanto con Nouveau como con el blob oficial.

Aquí no vamos a echarle toda la culpa a NVIDIA, sino que apelamos a la búsqueda de una solución por parte del fabricante de GPU y la Fundación Mozilla. De hecho, posiblemente esta última pueda hacer algo más para mejorar la integración de su navegador web con el driver de NVIDIA, ya que forzando la aceleración por hardware se consigue una mejora sustancial.

Combinaciones que terminan dando problemas y fuerzan la activación de nomodeset

Ciertas combinaciones de placas y distribuciones pueden terminar provocando un mal funcionamiento, caídas del servidor gráfico o incluso situaciones en las que el sistema no arranca. Aunque estas incidencias no son muy usuales, sí pueden terminar siendo muy molestas.

Una posible solución es establecer nomodeset en los parámetros de arranque de Grub para indicar al kernel que no cargue los drivers de las GPU y se apoye en las posibilidades de la BIOS hasta que el servidor Xorg esté cargado. Para aplicar nomodeset de forma permanente se tienen que seguir los siguientes pasos:

Abrir el siguiente fichero con un editor de texto y permisos de administración:

sudo nano /etc/default/grub

Cambar la siguiente línea:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Que pasará a estar así:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"

Cerrar el fichero guardando los cambios y ejecutar este comando con permisos de administrador:

sudo update-grub

Quizá haga falta aquí un trabajo que implique a diversas partes para así ofrecer una solución estandarizada.