La RIVA 128 , o " NV3 ", fue una unidad de procesamiento gráfico de consumo creada en 1997 por Nvidia . Fue la primera en integrar aceleración 3D además de la aceleración tradicional 2D y de vídeo. Su nombre es un acrónimo de Real - time Interactive Video and Animation Accelerator . [ 2]
El RIVA 128 siguió al acelerador " NV1 " de Nvidia, que tuvo menos éxito, y fue el primer producto que obtuvo un reconocimiento generalizado por parte de Nvidia. También supuso un cambio importante en la dirección tecnológica de Nvidia.
En 1996, Nvidia se encontraba en una mala situación financiera. En un principio, había aplicado un tipo de tecnología de renderizado completamente diferente, llamada mapeo de textura cuadrático, con su primer producto, el NV1. [3] Después, la empresa había pasado un año intentando utilizar su tecnología inferior para construir el chip gráfico para la consola de videojuegos Dreamcast de Sega . [4] Sega finalmente tuvo que desenchufar el proyecto de Nvidia y cambiar de proveedor, pero se convenció de mantener viva a Nvidia con una inversión de 5 millones de dólares. [4]
Nvidia despidió entonces a la mitad de sus 100 empleados y concentró los recursos restantes en el desarrollo del RIVA 128. [3] Cuando se lanzó el RIVA 128 en agosto de 1997, Nvidia tenía sólo un mes de nómina. [3] Esta situación extremadamente desesperada dio lugar a lo que sigue siendo "el lema no oficial de la empresa" hoy en día: "Nuestra empresa está a treinta días de cerrar". [3]
El RIVA 128 fue diseñado para renderizar dentro de las especificaciones de la API de OpenGL y Direct3D 5. Fue diseñado para acelerar Direct3D al máximo, a diferencia del chip NV1 de Nvidia. El chip NV1 había sido diseñado para un tipo de tecnología de renderizado completamente diferente, llamada mapeo de textura cuadrático, que no es compatible con Direct3D. [3] [4] [5]
El acelerador de gráficos consta de 3,5 millones de transistores construidos en el proceso de fabricación 5LM 350 nm de SGS-Thomson y tiene una frecuencia de reloj de 100 MHz . [2] [6] [7] RIVA 128 tiene una única tubería de píxeles capaz de 1 píxel por reloj al muestrear una textura. Está especificado para generar píxeles a una velocidad de 100 millones por segundo y triángulos de 25 píxeles a 1,5 millones por segundo. [2] Hay 12 KiB de memoria en el chip que se utilizan para cachés de píxeles y vértices. [2] El chip estaba limitado a un formato de píxeles de 16 bits ( Highcolor ) al realizar aceleración 3D y un búfer Z de 16 bits .
El motor acelerador 2D dentro del RIVA 128 tiene 128 bits de ancho y también opera a 100 MHz. En esta configuración "rápida y amplia", como la denominó Nvidia, el RIVA 128 tuvo un desempeño admirable para la aceleración de GUI en comparación con los competidores. [8] También se implementó un núcleo SVGA / VGA de hardware compatible con VESA de 32 bits . La aceleración de video a bordo del chip está optimizada para MPEG-2 pero carece de aceleración completa de ese estándar. La salida de imagen final se enruta a través de un RAMDAC integrado de 206 MHz . [2] RIVA 128 tenía la ventaja de ser un chip de gráficos 2D/3D combinado, a diferencia de Voodoo Graphics. Esto significaba que la computadora no requería una tarjeta 2D separada para la salida fuera de las aplicaciones 3D. También permitía la renderización 3D dentro de una ventana. La capacidad de construir un sistema con solo una tarjeta gráfica, y aún así tener todas las funciones para la época, hizo del RIVA 128 una solución de alto rendimiento de menor costo.
Nvidia equipó la RIVA 128 con 4 MiB de SGRAM , una nueva tecnología de memoria para la época, con una velocidad de reloj de 100 MHz y conectada al procesador gráfico a través de un bus de memoria de 128 bits . [2] Esto proporciona un ancho de banda de memoria de 1,60 gigabytes por segundo. La memoria se utilizó en una arquitectura de memoria unificada que compartía todo el conjunto de RAM con el almacenamiento de texturas y el framebuffer . El principal beneficio de esto, sobre un diseño dividido como el de Voodoo Graphics y Voodoo² , fue el soporte para resoluciones 3D de 800×600 y 960×720, superiores a los 640×480 de Voodoo. [9]
A principios de 1998, Nvidia lanzó una versión actualizada llamada RIVA 128 ZX . Este diseño actualizado de NV3 aumentó la compatibilidad de memoria a 8 MiB y aumentó la frecuencia RAMDAC a 250 MHz. Estas incorporaciones permitieron que la RIVA 128 ZX admitiera resoluciones y frecuencias de actualización más altas . [10] La versión ZX fue fabricada por SGS-Thomson y TSMC , y utiliza un chip de memoria SGRAM de 8 MB , con una velocidad de reloj de 125 MHz, de Samsung Electronics . [6] [11]
El RIVA 128 tenía una interfaz de bus AGP 1X , mientras que la versión ZX fue una de las primeras partes AGP 2X, lo que le dio un poco más de margen de comercialización al estar a la vanguardia de la tecnología de interfaz. El procesador gráfico se construyó en torno a la especificación AGP de Intel dirigida al chipset Intel 440LX para Pentium II . Nvidia diseñó el RIVA 128 con una capacidad máxima de memoria de 4 MiB porque, en ese momento, este era el enfoque óptimo en términos de costo para un acelerador 3D de consumo. [12] Esto se debió en parte a la capacidad del chip para almacenar texturas en la RAM del sistema fuera de la pantalla tanto en configuraciones PCI como AGP. [12]
El próximo gran chip de Nvidia sería el RIVA TNT . [13] [14]
En el momento del lanzamiento de RIVA 128, 3Dfx Voodoo Graphics ya se había establecido firmemente como el punto de referencia de hardware 3D con el que se comparaban todos los recién llegados. Voodoo fue el primer acelerador de juegos 3D que ofreció un rendimiento y una calidad excepcionales. RIVA 128 fue criticado por su menor calidad de renderizado (en comparación con Voodoo) y por los errores de renderizado. [5]
Con los controladores iniciales, la RIVA 128 usaba mipmapping por polígono en lugar de la variedad por píxel, de mucha mayor calidad pero más exigente. [5] Esto hacía que los diferentes niveles de detalle de textura "aparecieran" a medida que el jugador se movía por el juego y se acercaba a cada polígono, en lugar de permitir una transición gradual y sin fisuras por píxel. Nvidia finalmente lanzó controladores que permitían un modo por píxel. Otro problema con la textura de la tarjeta era el uso de la generación automatizada de mipmaps. Si bien esto mejora la calidad visual y el rendimiento en juegos sin mipmaps, también causó problemas imprevistos porque obligaba a los juegos a renderizarse de una manera para la que no estaban programados.
El filtrado bilineal de NV3 era en realidad "más nítido" que el de 3Dfx Voodoo Graphics. Pero, si bien no difuminaba las texturas tanto como Voodoo, sí añadía algo de ruido a las texturas, debido a un algoritmo de filtrado de menor fidelidad. También había problemas con las costuras visibles entre los polígonos.
Si bien los controladores iniciales sí presentaban estos problemas de calidad de imagen, los controladores posteriores ofrecieron una calidad de imagen que posiblemente iguale a la de Voodoo Graphics. Además, debido a que la RIVA 128 puede renderizar a resoluciones superiores a 640x480, la tarjeta puede ofrecer una calidad superior a la de Voodoo Graphics, como se muestra en la captura de pantalla de Quake II anterior . Los controladores finales lanzados para la RIVA 128 admiten mipmapping por píxel, anti-aliasing de escena completa ( supersampling ) y una serie de opciones para ajustar las funciones con el fin de optimizar la calidad y el rendimiento.
Los controladores fueron, durante una parte importante de la vida de la tarjeta, bastante ásperos. No solo eran evidentes los problemas con Direct3D antes mencionados, sino que la tarjeta carecía de un buen soporte OpenGL. [8] Con RIVA 128, Nvidia comenzó su búsqueda de soporte OpenGL de primera calidad, lo que finalmente resultó en que la placa fuera un ejecutante OpenGL capaz. Una desventaja importante para Nvidia fue que muchos juegos durante la vida de RIVA 128 usaban la API Glide patentada de 3Dfx . Legalmente, solo las tarjetas 3Dfx podían usar la API Glide de 3Dfx.
Al igual que el ATI Rage Pro , el RIVA 128 nunca pudo acelerar el popular Unreal Engine en modo Direct3D debido a la falta de funciones de hardware. Sin embargo, era posible utilizar el renderizador OpenGL del motor, pero desafortunadamente la compatibilidad con OpenGL era bastante lenta y tenía errores en el Unreal Engine original. El rendimiento en Quake III Arena , un juego que utilizaba un motor más avanzado que Unreal Engine 1, fue mejor debido a que el motor había sido diseñado para OpenGL. [ cita requerida ]
Los controladores RIVA 128 finales de Nvidia para Windows 9x incluyen un controlador OpenGL completo. Sin embargo, para que este controlador funcione, Windows debe estar configurado con una profundidad de color de escritorio de 16 bits.
También se incluye un controlador para RIVA 128 en Windows 2000 y XP, pero no es compatible con 3D. Nvidia filtró una vez un controlador beta con compatibilidad con OpenGL, pero luego lo cancelaron, y actualmente no hay ningún controlador para Windows 2000 para RIVA 128 en el sitio de controladores de Nvidia. Ni el controlador beta ni los que vienen con Windows 2000/XP podían soportar Direct3D.
En su momento, la RIVA 128 fue una de las primeras tarjetas que combinaban 2D y 3D y que podía rivalizar con Voodoo Graphics. La capacidad 2D de la RIVA 128 se consideró impresionante para su época y era competitiva incluso con las tarjetas gráficas 2D de gama alta tanto en calidad como en rendimiento. [8] [9]