marzo 3, 2021
Mesh Shader 3D Mark

La mentira SONY Retard sobre los Mesh Shaders

Hace unos días, ha salido el benchmark de 3DMark que mide el rendimiento en los Mesh/Primitive Shaders de las nuevas GPU. ¿Los resultados? Para cualquiera que conozca como funcionan las cosas y tienen dos dedos de frente, lo esperado.

Mesh Shaders 3DMark Resultados

¿Cuál es el motivo? Los Mesh/Primitive Shaders por lo que su palabra indica son un tipo de «Shader». Por lo que funciona de la misma manera que el resto de shaders gráficos, es decir, se ejecuta en las unidades shaders, CU para AMD y SM para NVIDIA, y por tanto dependerá de la velocidad de estos.

SM Doble FP32

En las GeForce Ampere la arquitectura puede realizar hasta 128 operaciones por ciclo en FP32, 256 si la instrucción es FMADD. En cambio en RDNA 2 cada unidad shader puede realizar hasta 64 operaciones por ciclo en FP32, 128 si la instrucción es FMADD.

RX6000 Compute Unit Specs

Desde el momento en que no hay ninguna otra unidad que realice los Mesh/Primitive Shaders pues va a depender de la potencia de cálculo de los shaders en sí mismos y no de ningún otro tipo de unidad.

Hecha la introducción vamos a lo que nos interesa.

El mágico Mesh Shader de PS5

Si hay algo que me divierte de las discusiones técnicas de foros es que son como ver a niños hablando de juegos de adultos, verles decir alguna tontería y de repente se te escapa una sonrisa.

Más bien miento, con un niño te puedes reír por su inocencia y desconocimiento ante el mundo, pero no de cara a gente cuyo afán es engañár con tal de justificar el medio. Por ese este post esta más que justificado.

Empecemos por el primero de estos estafadores:

Ridículo Mesh Shaders 1

«SONY tiene su propia implementación». Por supuesto, en una era donde llevamos años utilizando la misma unidad para ejecutar todo tipo de shaders nos encontramos que SONY tiene su propia implementación.

¿Y qué significa tener su propia implementación? Es lo que me pregunto yo, más bien ir indagando para encontrar la narrativa de estos indigentes mentales.

Ridículo Mesh Shaders

El MisterSonyRetard sigue su intento de engañar a la gente, esta vez afirma que Primitive Shaders es el nombre a la implementación de AMD de los Mesh Shaders. Sigue sin tener ni idea de lo que es un shader y sigue intentando sentar catedra.

Por cierto, Primitive Shader es el nombre que en Vulkan y otras APIs se da a los Mesh Shaders. De la misma manera que en Vulkan y OpenGL a los Pixel Shaders se les llama Fragment Shaders.

Ridiculo Mesh Shaders

Bububububu, PS5 tiene cosas de RDNA 3 que nos los han dicho una serie de youtubers propaganderos de AMD eh, aunque no se sepa cuáles son esas funciones. 

Dicho de otra forma:

PS Fanboy Cry

¿Qué ocurre? El bulo de que PS5 no es RDNA por parte de los fanboys de Microsoft les escoció tanto que tuvieron que subir la apuesta, decir que la GPU es RDNA 3 por, quien sabe el que, algo se habrán inventado en sus febriles mentes.

Algunos no saben lo que es un shader

El siguiente paso está en decir que los Mesh Shaders no están implementados a través del hardware. Es decir, soltar una serie de estupideces sin sentido que parecen ordenadas coherentemente. ¿Para qué? Esta gente disfruta engañando a la gente, nada más que eso, no interiorizan ni procesan lo que piensan.

Mi pregunta es: ¿Qué significa que algo esté implementando por software para esta gente? Todo shader tiene una parte software desde el momento en que es un programa que se ejecuta en las unidades shader.

Tiremos, si, de la Wikipedia, para la definición de shader:

Un sombreador​ (llamado shader en inglés) es un programa informático que realiza cálculos gráficos escritó en un lenguaje de sombreado que se puede compilar independientemente. Es una tecnología que ha experimentado una rápida evolución destinada a proporcionar al programador una interacción con la unidad de procesamiento gráfico (GPU) hasta ahora imposible. Los sombreadores son utilizados para realizar transformaciones de vértices o coloreado de píxeles, entre otras labores, con el propósito de crear efectos especiales, como iluminación, fuego o niebla.

Para su programación, los sombreadores utilizan lenguajes específicos de alto nivel independientes del hardware sobre el que se ejecuten. Existen sombreadores de diversos tipos dentro de la arquitectura de una GPU, como por ejemplo sombreadores de vértices, sombreadores de geometría, y sombreadores de cómputo para realizar cálculos que no son gráficos, entre otros.

Con esta definición, la cual es clara y meridiana. Queda claro que se dedica a mentir y a engañar.

Mesh Shaders y el Geometry Engine

El embuste de los SONY Retards es hacer creer a la gente a través del engaño y la manipulación del lenguaje que el Geometry Engine y los Mesh Shaders están relacionados, para que así a partir de ahí fabricar una narrativa basada en premisas que de entrada son falsas.

Ridículo Mesh Shaders

Fijaos como de nuevo gurú, el MisterSonyRetard de Elog intenta engañar en este mensaje relacionando el Geometry Engine con los Mesh Shaders. Claro esta que muchos os preguntaréis que es el Geometry Engine.

¿Qué mejor si nos lo dice la propia AMD? Por cierto, os recomiendo ver el siguiente video, el cual es muy educativo y en el que tratan todo el pipeline gráfico desde la perspectiva de las arquitecturas RDNA.

Pero, lo mejor es ir al punto importante:

Geometry Engine AMD Slide

En concreto en la parte en la que hablan del Geometry Engine en el vídeo, dejan claro que el Geometry Engine es una unidad que conoce la topología de las unidades construcciones realizadas con vértices y saca la información después de que el procesador de comandos le pasa la lista de vértices que los shaders han de procesar.

Pensad en el Geometry Engine como una unidad que identifica y cataloga la lista de la geometría que va a ser procesada, esto es importante porque esta misma unidad será la encargada de quitar y añadir elementos. También saca información de la conectividad entre los diferentes vértices, lo cual es necesario para ir añadiendo y quitando vértices.

Por lo que no son los Mesh Shaders, es más, fijaos como Lou Kramer al hablar del Geometry Engine lo coloca fuera del «Shader Processor Input» y las «Compute Units», por lo que no tiene nada que ver con un shader.

Relación Mesh Shaders y Geometry Engine

Tened en cuenta que los Mesh Shaders son lo mismo sea cual sea la arquitectura o el fabricante, esto es importante porque no existen implementaciones de diferentes marcas. Lo digo porque voy a utilizar el material de NVIDIA.

La idea de los Mesh/Primitive Shaders es suprimir todos los tipos de shaders para la geometría, los cuales están limitados sobre la cantidad de datos que pueden recibir de entrada y pueden enviar de salida, para convertirlos en una variante de los Compute Shaders.

Meshlets

Básicamente la idea con los Mesh Shaders eliminar por completo la tipología de los shaders de la geometría para que todo sean técnicamente Compute Shaders, fijaos como un Mesh Shader en realidad no sabe diferenciar entre tipos de shaders geométricos.

Esto es sumamente útil para añadir y quitar geometría de manera dinámica según el nivel de detalle necesario en cada momento, tal y como se ve en la demostración de los asteroides de NVIDIA.

 

Mesh Compute Shader

Es decir, la misma unidad que nos permite utilizar los Shaders para la geometría es la misma que permite procesar los Compute Shaders, los cuales están menos limitados. El problema es que perdemos la tipología de los datos y necesitamos algo que sepa que es primitiva o vértices, es por eso que existe el Geometry Engine, el cual no ejecuta ningún tipo de programa shader, pero es invocado para la creación de los vértices y la destrucción de los mismos.

En realidad los Mesh Shaders, junto a los Amplification/Task/Surface Shader son una simplificación del pipeline geométrico en la que los Vertex, Hull, Domain y Geometry Shader desaparecen y con ello la función fija de la teselación, lo cual quedará como algo atávico para compatibilidad con los juegos que utilicen el viejo pipeline geométrico.

Esto es todo, saludos.