NVIDIA se suma a los drivers de código abierto con NVK para Linux y pide implementar en Mesa «Conservative Rasterization»
Hace meses el desarrollador principal de Nouveau se unió al equipo de ingenieros de software de NVIDIA, donde tras hacerlo envió una gran parte de su trabajo para que fuese implementado de forma oficial en el driver NVK de los verdes destinado a Linux. Esa incorporación fue clave para NVIDIA, porque ahora el mismo desarrollador, Ben Skeggs, acaba de pedir la incorporación en NVK para Mesa de la característica Conservative Rasterization mediante Arthur Huillet.
Esto tiene una doble consecuencia para los verdes. En primer lugar, un cambio de paradigma ya de forma oficial hacia Linux y el código abierto. En segundo lugar, la implicación propia de pedir que Conservative Rasterization termine en el driver NVK como tal, así que quizás estemos viendo un camino distinto, es posible, que empujada por AMD y ROCm.
Arthur Huillet abrió una solicitud de fusión para NVK de Mesa
Tras agregar su driver patentado para NVIDIA en Linux ahora la contribución hacia Mesa es indispensable, ya que lo que pretenden los verdes es acercarse a Linux como está haciendo AMD, de manera que poco a poco se mejore tanto el soporte como el rendimiento en juegos bajo este SO.
Por eso, MESA va a ser tan importante a partir de ahora, además, dentro de lo que se ha visto con NVIDIA, la contribución que están haciendo se va a enfocar a Vulkan (VK_EXT_conservative_rasterization). Igualmente, NVIDIA no está siendo totalmente clara sobre sus planes para Linux y mucho menos con su driver, por eso precisamente esto es más importante si cabe.
¿Significa esto acaso que van a abrir su driver de par en par como ha hecho AMD? Más bien no, es parte de su fortaleza y no parece que este sea el caso, pero mientras que se vuelquen más y más con Linux será igualmente un buen reclamo para sus usuarios.
Conservative Rasterization, lo nuevo para el driver NVK
Todo esto está muy bien, pero, ¿Qué es el Conservative Rasterization y para qué sirve? Bueno, es lo que se conoce como rasterización conservadora, la cual se implementó al llegar DX12. Resumiendo un poco esta técnica de implementación, es un tipo de rasterización común y más o menos básica que se encarga de ciertos efectos en pantalla, como las transparencias o la intersección de uno o varios objetos que tengan que chocar, cruzarse o no mostrarse porque uno está delante del otro.
Conservative Rasterization consigue que haya un orden de representación y visualización para el jugador, ya que su pipeline consigue mantener el orden de las escenas, e incluso puede llegar a omitir píxeles para darle concordancia a lo que vamos a ver. En definitiva, se creó para los casos de intersecciones donde la rasterización estándar no hacía un buen trabajo, como en la figura superior con los dos triángulos.
Imaginemos que estamos jugando a un FPS, CS2 por ejemplo, y tenemos una piedra mediana delante de una mayor. Sin Conservative Rasterization la piedra mediana sería transparente y podríamos ver la piedra en su conjunto por detrás. Si hubiese un enemigo agachado detrás de ambas piedras, sin Conservative Rasterization lo veríamos sin problema a través de ambas piedras (quién dice piedras, dice cualquier superficie superpuesta). Se puede dar el caso opuesto, que con cierta habilidad las piedras se hiciesen transparentes y viésemos a los enemigos.
En Realidad Virtual, por ejemplo, ayuda con la profundidad de los objetos, lo cual es muy relevante para crear una inmersión más realista. Dicho esto, ya van varias interacciones de NVIDIA con el driver NVK para Linux, esperemos que sigan así y aumenten incluso el ritmo, lo cual sería una gran señal.