Una breve historia del procesador gráfico moderno (GPU) - Parte I
La evolución del procesador gráfico moderno comienza con la introducción de las primeras tarjetas complementarias 3D en 1995, seguida de la adopción generalizada de los sistemas operativos de 32 bits y la computadora personal.
La industria gráfica que existía antes de eso consistía en gran medida en una arquitectura 2D no compatible con computadoras personales, con tarjetas gráficas conocidas por las convenciones alfanuméricas de los nombres de sus chips y sus precios exorbitantes. Las gráficas 3D para juegos en PC son la mezcla de fuentes tan diversas como juegos de arcade y consolas, aplicaciones militares, robótica y simuladores espaciales, así como aplicaciones médicas.
Los primeros días de los gráficos 3D para el consumidor fueron como el salvaje oeste, con diferentes ideas compitiendo entre sí en cosas como la implementación del hardware, el uso de diferentes técnicas de renderizado así como las aplicaciones e interfaces de datos a utilizar.
Los gráficos 3D para PC convirtieron una industria bastante aburrida en un espectáculo de luz y magia, pero deben su existencia a varias generaciones de esfuerzos innovadores.
Vamos a recorrer un poco de esa historia ...
1976 a 1995: Los primeros días de los gráficos 3D para el consumidor
Los primeros gráficos 3D verdaderos comenzaron con antiguos controladores de video (VDC) conocidos como cambiadores de video y generadores de direcciones de video que actuaban como un puente entre el procesador principal y la pantalla. El flujo de datos entrantes se convertía en un video de mapa de bits de salida.
Una gran variedad de diseños apareció durante la segunda mitad de la década de 1970, sentando las bases para los gráficos 3D tal como los conocemos. El chip de video “Pixie” de RCA (CDP1861) en 1976, por ejemplo, era capaz de emitir una señal de video compatible con NTSC a una resolución de 62x128, o 64x32 para la consola RCA Studio II.
El chip de video fue seguido rápidamente (un año después) por el Adaptador de interfaz de televisión (TIA) 1A, que se integró en el Atari 2600 para generar los gráficos de pantalla, los efectos de sonido y la lectura de los controladores de entrada (joysticks).
En 1978, Motorola presentó el generador de direcciones de video MC6845, que se convirtió en la base de las tarjetas monocromáticas y de color (MDA / CDA) de la IBM PC de 1981, así como de la Apple II. Motorola lanzó el generador de pantalla MC6847 más tarde ese mismo año, y fue utilizado en varias computadoras personales de primera generación, incluida la clásica Tandy TRS-80.
En noviembre del año siguiente, el ANTIC (Controlador de interfaz de televisión alfanumérica) de LSI y el coprocesador CTIA / GTIA (Adaptador de interfaz de televisión en color o gráficos) debutaron en el Atari 400. ANTIC procesaba gráficos 2D utilizando acceso directo a memoria (DMA).
Los siguientes avances en la evolución gráfica se dieron principalmente en el campo profesional.
Intel utilizó su chip de gráficos 82720 como base para el controlador iSBX 275 (que salió al mercado con un costo de $1000 dólares). Era capaz de mostrar ocho colores en una resolución de 256x256 (o monocromo a 512x512). Sus 32 KB de memoria eran suficientes para dibujar líneas, arcos, círculos, rectángulos y mapas de bits de caracteres. El chip también podría hacer zoom, partir la pantalla y desplazarse.
La virtualización 3D industrial y militar estaba relativamente bien desarrollada en ese momento. IBM, General Electric y Martin Marietta (que compraría la división aeroespacial de GE en 1992), junto con una serie de contratistas militares, institutos tecnológicos y la NASA, ejecutaron varios proyectos que requerían el desarrollo de tecnología para simulaciones militares y espaciales. La marina de Estados Unidos también desarrolló un simulador de vuelo utilizando la computadora Whirlwind del MIT en 1951.
Ivan Sutherland, cofundador de la compañía Evans & Sutherland, desarrolló un programa de computadora en 1961 llamado Sketchpad, que permitía dibujar formas geométricas y mostrarlas en un CRT en tiempo real utilizando un lápiz óptico. Este invento es el padre de la moderna interfaz gráfica de usuario (GUI).
En el campo de computadora personal, la serie EGA (Extended Graphics Adapter) 82C43x de Chips and Technologies, proporcionó una - muy necesaria - competencia a los adaptadores de IBM, y se encontraba instalada en muchos clones de la IBM PC / AT alrededor de 1985. Ese año también fue importante para la Commodore Amiga, que incluía el chipset OCS, que constaba de tres componentes principales: Agnus, Denise y Paula, que permitían que una cierta cantidad de cálculos para gráficos y procesamiento de audio no dependieran del CPU.
En agosto de 1985, tres inmigrantes de Hong Kong, Kwok Yuen Ho, Lee Lau y Benny Lau, fundaron la empresa Array Technology Inc en Canadá, que a finales de ese mismo año cambiaría de nombre a ATI Technologies Inc.
ATI lanzó su primer producto al año siguiente (1986). Se utilizó para enviar texto monocromático de fósforo verde, ámbar o blanco sobre un fondo negro a un monitor TTL a través de un conector DE-9 de 9 pines. La tarjeta venía equipada con un mínimo de 16 KB de memoria y fue la responsable de un gran porcentaje de las ventas de ATI (casi $10 millones de dólares canadienses) en el primer año de operaciones de la compañía, quien le proveía alrededor de 7000 chips a la semana a Commodore Computers.
El advenimiento de los monitores en color y la falta de un estándar finalmente condujo a la formación de la Asociación de Estándares de Electrónicos de Vídeo (VESA), de la cual ATI fue miembro fundador, junto con NEC y otros seis fabricantes de adaptadores gráficos.
La serie EGA Wonder fue lanzada en marzo con un costo de $399. Incluía 256 KB de DRAM, así como compatibilidad con emulación CGA, EGA y MDA con hasta 640x350 y 16 colores.
Completando la gama alta estaba el EGA Wonder 800 con emulación VGA de 16 colores y soporte de resolución de 800x600, y la tarjeta VGA de rendimiento mejorado (VIP), que era básicamente una EGA Wonder con un DAC para proporcionar compatibilidad limitada con VGA. Esta última costaba $449
Pero ATI no estaba sola. Ese año llegaron muchas empresas y productos nuevos. Entre ellas estaban Trident, SiS, Tamerack, Realtek, Oak Technology, LSI's G-2 Inc., Hualon, Cornerstone Imaging y Winbond, todos formados en 1986-87. Mientras tanto, compañías como AMD, Western Digital / Paradise Systems, Intergraph, Cirrus Logic, Texas Instruments, Gemini y Genoa, producirían sus primeros productos gráficos durante este período de tiempo.
Las actualizaciones de la serie Wonder continuaron avanzando rápidamente en 1991. La tarjeta Wonder XL agregó compatibilidad de color VESA 32K y Sierra RAMDAC, que aumentó la resolución máxima de la pantalla a 640x480 a 72Hz o 800x600 a 60Hz.
ATI también lanzó una variación de la Wonder XL que incorporó un chip Creative Sound Blaster 1.5 en una PCB extendida (conocido como VGA Stereo-F X) y era capaz de simular sonido estéreo a partir de archivos mono Sound Blaster con calidad similar a la de la radio FM.
S3 Graphics se formó a principios de 1989 y produjo su primer chip acelerador de 2D y tarjeta gráfica 18 meses despúes, eL S3 911, con 1 MB de VRAM y soporte de color de 16 bits.
El S3 911 fue reemplazado por el 924 ese mismo año, era básicamente un 911 con color de 24 bits, y nuevamente actualizado al año siguiente con el 928 que agregó color de 32 bits. Ese mismo año presentó un par de aceleradores: el 801 y 805. El 801 usaba una interfaz ISA, mientras que el 805 usaba VLB. Entre la presentación del 911 y el advenimiento del acelerador 3D, el mercado se inundó con diseños basados en los originales de S3, especialmente de los laboratorios Tseng, Cirrus Logic, Trident, IIT, Mach32 de ATI y MAGIC RGB de Matrox.
En enero de 1992, Silicon Graphics Inc (SGI) lanzó OpenGL 1.0, una interfaz de programación de aplicaciones (API) multiplataforma para gráficos 2D y 3D.
OpenGL evolucionó de la API patentada de SGI, llamada IRIS GL siglas de Integrated Raster Imaging System Graphical Library. Fue una iniciativa para permitir que la API se ejecutara en sistemas que no son SGI, ya que los proveedores rivales comenzaron a aparecer con sus propias API propietarias.
Inicialmente, OpenGL estaba dirigido a los mercados profesionales basados en UNIX, pero con un soporte amigable para los desarrolladores para la implementación de extensiones, lo que facilitó su adopción rápida para juegos 3D.
Microsoft estaba desarrollando una API rival llamada Direct3D y no se esforzó lo suficiente para asegurarse de que OpenGL funcionara bien con los nuevos sistemas operativos Windows.
Algunos años después, John Carmack de id Software, cuya creación anterior Doom había revolucionado los juegos para PC, portó Quake a OpenGL en Windows, sorprendido de lo sencillo que había resultado, y criticó abiertamente a Direct3D por la dificulta, diciendo que "no terminé de portar Quake a D3d, tengo mejores cosas que hacer con mi tiempo."
La intransigencia de Microsoft aumentó al no permitir el uso del controlador (MCD) de OpenGL en Windows 95. SGI respondió desarrollando el Controlador de cliente instalable (ICD), que no solo proporcionó la misma capacidad, sino que lo hizo aún mejor ya que MCD cubría solo rasterización mientras que ICD agregó Iluminación y Transformación, conocidos en el slang gráfico como T&L.
Durante el auge de OpenGL, que inicialmente ganó fuerza en el campo de las estaciones de trabajo, Microsoft estaba ocupado desarollando su propia API. Adquirieron RenderMorphics en febrero de 1995, cuya API de Reality Lab estaba ganando terreno con los desarrolladores y se convirtió en el núcleo de Direct3D.
Casi al mismo tiempo, Brian Hook de 3dfx estaba desarrollando Glide que se convertiría en la API dominante para juegos.
A medida que D3D se volvió ampliamente disponible, las API propietarias como S3d (S3), Matrox Simple Interface, Creative Graphics Library, C Interface (ATI), SGL (PowerVR), NVLIB (Nvidia), RRedline (Rendition) y Glide, comenzaron a perder el favor de los desarrolladores.
1993 vio el nacimiento de nuevos competidores, especialmente Nvidia, fundada en enero de ese año por Jen-Hsun Huang, Curtis Priem y Chris Malachowsky. Huang trabajó anterioremente diseñando microprocesadores en AMD y como director en LSI (una empresa de semiconductores basada en San Jose, CA), mientras que Priem y Malachowsky procedían de Sun Microsystems, donde habían desarrollado previamente la arquitectura de gráficos GX basada en SunSPARC .
Para 1993, la volatilidad del mercado había obligado a varias compañías gráficas a retirarse del negocio o ser absorbidas por sus competidores.
S3 ganó terreno con el Vision 968 y el Trio64, que ganaron varios contratos OEM de fabricantes como Dell, Compaq, AT&T, HP y DEC.
En 1995, ATI lanzó el Mach64 para PC y MAC. Este chip junto con el Trio de S3, fueron los únicos en ofrecer aceleración en la reproducción de video en pantalla completa. El Mach64 apareció en las primeras tarjetas gráficas profesionales de ATI: la 3D Pro Turbo y la 3D Pro Turbo +PC2TV, con precios de $599 y $899 dólares.
Ese mismo año, apareció una nueva startup de tecnología llamada 3DLabs, que nació cuando la división de gráficos Pixel de DuPont se separó de su empresa matriz y adquirió los derechos del procesador GLINT 300SX, que era capaz de renderizar OpenGL, procesamiento de fragmentos y rasterización. Debido a su alto precio, las tarjetas de la compañía estaban inicialmente destinadas al mercado profesional. El Fujitsu Sapphire2SX 4MB se vendió por $ 1600- $ 2000 dólares. Sin embargo, el 300SX tenía en su destino el mercado de juegos.
El Gaming GLINT 300SX de 1995 incluía una memoria de 2 MB muy reducida. Usaba 1 MB para texturas y z-buffer y el otro para frame buffer, pero tenía la opción con más VRAM para compatibilidad Direct3D por otros $50 sobre el precio base de $349 usd. La tarjeta no logró avanzar en un mercado tan abarrotado, pero 3DLabs ya estaba trabajando en un sucesor: la serie Permedia.
Quien parecía estar en todas partes en ese momento era S3. El OEM de gama alta estaba dominado por los chipsets Trio64 de la compañía que integraban un DAC, un controlador de gráficos y un sintetizador de reloj en un solo chip. El Trio64 y su hermano con un bus de memoria de 32 bits, el Trio32, estaban disponibles como unidades OEM y tarjetas independientes de proveedores como Diamond, ELSA, Sparkle, STB, Orchid, Hercules y Number Nine.
En el mercado 3D aparecieron las primeras tarjetas de Trident, un antiguo proveedor OEM de adaptadores gráficos 2D que recientemente había agregado el chip 9680 a su línea. El chip contaba con la mayoría de las características del Trio64 a un precio más accesible de $ 170-200 dólares. Ofrecía un rendimiento 3D aceptable, con buena capacidad de reproducción de video. Por mucho tiempo, Trident era una de las opciones por omisión al momento de ensamblar una PC.
Nvidia lanzó su primer chip gráficos, el NV1 , en mayo de 1995, y se convirtió en el primer procesador de gráficos comercial capaz de renderizado 3D, aceleración de video y aceleración GUI integradas.
Desafortunadamente para Nvidia, justo cuando las primeras placas vieron la luz (especialmente la Diamond Edge 3D) en septiembre, Microsoft finalizó y lanzó DirectX 1.0. D3D se basaba en la representación de polígonos triangulares, y el NV1 utilizaba el mapeo de texturas cuádruples. Posteriormente Nvidia agregó capacidad D3d limitada a través de controladores de software que simulaban superficies cuadradas alrededor de los tríangulos, pero la falta de juegos diseñados para el NV1 evitaron que se popularizara. La mayoría de los juegos para NV1 fueron portados desde Sega Saturn, de hecho el primer juego diseñado para correr en el NV1 fue Virtua Figther.
ATI anunció su primer chip con aceleración 3D en noviembre de 1995: el 3D RAGE. La primera demostración de este chip fue en la convención E3 en Los Angeles en mayo del siguiente año. El 3D Rage combinaba gráficos 3D con el núcleo 2D del Mach64.
Las revisiones tardías a la especificación de DirectX provocaron problemas de compatibilidad con el 3D Rage en muchos de los juegos que usaban la API de Microsoft. Con un frame buffer de 2MB en la placa, la modalidad 3D estaba limitada a 640x480x16-bit o 400x300x32-bit. Intentar 32 bits a 600x480 generalmente resultaba en corrupción del color en pantalla, además en 2D la resolución máxima era 1280x1024. Si el rendimiento en juegos de la 3D RAGE fue mediocre, la capacidad de reproducción de MPEG en pantalla completa, salvó a la tarjeta de ser un completo fracaso.
ATI trabajó en el chip y lanzó el RAGE II en septiembre de 1996, solucionando algunos de los problemas con Direct X e incluyendo soporte para MPEG2.
Si bien ATI y NVIDIA fueron los primeros en comercializar una solución de gráficos 3D, no pasó mucho tiempo para que otros competidores con diferentes ideas de implementación llegaran a la escena. Entre los que se encontraban, 3dfx, Rendition y VideoLogic.
En la cuanto a lanzar nuevos productos al mercado, 3Dfx Interactive le ganó a Rendition y a VideoLogic. Pero en la carrera de rendimiento, 3Dfx con su Voodoo Graphics aniquiló toda la competencia.