Apple va a dar a finales de año los primeros pasos para la transición a usar sus propios procesadores en los Mac, y dejó totalmente claro que dejará de usar los procesadores de Intel en dos años. Lo que no quedó demasiado claro es qué iba a pasar con las tarjetas gráficas de AMD, si bien en la el vídeo de introducción de la WDDC 2020 para los desarrolladores dejó más o menos claro que también las iba a desterrar.

Esta postura fue también indicada en una de las sesiones de título Lleva tu aplicación basada en Metal a los Mac con procesador Apple y se puede ver en la web de la compañía. En el vídeo se puede ver la siguiente imagen que deja claro que los Mac con procesadores Apple no son compatibles con las tarjetas gráficas de AMD, o al menos no lo son por ahora.

captura_de_pantalla_2020-07-08_a_las_1.27.59.jpg

Muchas cosas pueden cambiar en dos años, porque podría ser por un mero problema de que no hay controladores de AMD para arquitectura ARM, pero sabiendo que Samsung y AMD trabajan para llevar la arquitectura RDNA a ARM la cosa podría cambiar. Personalmente creo que Apple sí que quiere prescindir totalmente de AMD, pero no sé si lo va a poder hacer en ese plazo de dos años. Apple ha avanzado mucho en las unidades de procesamiento gráfico en la última década, pero hay que ver todavía como escala la arquitectura con márgenes de consumo de una tarjeta gráfica normal actual —50 W en el caso de los MacBook Pro, frente a los ¿3-5 W? que pueda consumir la unidad gráfica del A12Z—.

En el vídeo también se explica la diferencia entre cómo renderiza los gráficos la arquitectura gráfica de Apple y cómo lo hacen el resto de fabricantes que me parece interesante, aunque básico. El resumen es que el renderizado en diferido basado en teselas (TDBR, por su sigla en inglés), también renderizado por mosaico, es mejor que el renderizado de modo inmediato en cuanto a consumo, cantidad de ancho de banda de memoria que consume y también de exigencia de memoria. Es por lo que Apple asegura que los juegos funcionarán con fluidez incluso en la unidad gráfica del A12Z, como demostró en la WWDC.

Analizando un poco más lo dicho anteriormente, en el mundo real las teselas son lo que conforman los mosaicos, y en generación de gráficos por computadora hace referencia a dividir una escena en una rejilla geométrica —generalmente cuadrados de 16×16 o 32×32 píxeles, pero pueden ser del tamaño que se quiera— para renderizar cada zona de manera independiente. Cada componente de esa rejilla se llama tesela. Y hay que tener en cuenta que en cada tesela puede haber distintos modelos 3D con distinta cantidad de polígonos que la conforman —generalmente los modelos 3D hoy en día se construyen con triángulos—.

captura_de_pantalla_2020-07-08_a_las_1.32.04.jpg

El renderizado basado en teselas, y específicamente este TDBR, implica que se lleva el control de los triángulos generados en cada tesela en una especie de base de datos y así se puede detectar más rápido qué teselas quedan fuera del punto de visión, por ejemplo detrás de otros objetos, y por tanto ignorar el renderizado de todos sus triángulos relacionados desde el primer momento. También permite ir renderizado únicamente ciertas partes de la imagen. Por contra, el modo de renderizado inmediato implica que se generan todos los triángulos de todos los modelos de una vez, se vean o no, se rasteriza la imagen donde ya sí se comprueba si están ocultos para no seguir procesándolos —por ejemplo durante el sombreado de los píxeles, que es la detección de niveles de iluminación para modificar su color—, se posprocesa como se deban posprocesar todos los modelos, y se presenta por pantalla.

El método de renderizado por teselas tiene ventajas en este contexto en todo lo relacionado con reutilización de teselas y triángulos pero es más laborioso de implementar, aunque sus beneficios frente al modo inmediato son más que sustanciales. No es algo nuevo, y de hecho los primeros trabajos datan de finales de los 80, sustituido por el modo inmediato, si bien más recientemente tanto AMD como Nvidia han retomado la senda del renderizado por teselas en sus tarjetas gráficas más recientes —desde Vega y Maxwell, respectivamente—. Intel la añadió en la generación 11 de sus unidades gráficas, porque son un requisito de DirectX 12.

Lo que viene a decir Apple con esto es que está por delante del resto de las compañías de unidades gráficas, y también es por lo que digo que lo que ahora mismo puede no ser posible —usar una Radeon en la arquitectura ARM— puede ser viable en uno o dos años. Porque si Apple gana rendimiento usando el renderizado por teselas, también lo terminarán ganando el resto de compañías variando ligeramente su arquitectura. Y en algo que no ha entrado Apple, y es importante, es en qué hará cuando en cinco años se empiece a dejar de usar el renderizado y se pase a la generación de gráficos puramente con trazado de rayos. Pero eso es una historia para el futuro cercano.