En una palabra: ¿Alguien puede construir una tarjeta gráfica 3D desde cero? Dylan Barrie quería descubrirlo y pasó cuatro años intentándolo. El resultado fue una GPU completa que, en teoría, puede ejecutar software de juegos más antiguo en Windows.
Dylan Barrie es un desarrollador de juegos y aficionado al hardware. Durante los últimos catorce años de su carrera en la industria de los juegos, Barrie se centró principalmente en el lado del software de la renderización de gráficos. Sin embargo, comenzó a desarrollar una GPU full-stack personalizada hace cuatro años en su tiempo libre.
Barrie dijo que el proceso de creando una tarjeta gráfica desde cero era un infierno, pero después de cuatro años de diligencia, finalmente puede compartir sus esfuerzos ahora que el diseño de la tarjeta complementaria ya está prácticamente terminado. FuriaGPU es una «GPU de hardware real» construida sobre un diseño FPGA Xilinx Zynq UltraScale+. La tarjeta utiliza una PCB personalizada y se conecta a la PC host a través de una ranura PCIe.
FuryGPU puede admitir características de hardware equivalentes a una tarjeta gráfica de «gama alta» de mediados de la década de 1990, con una pila completa de software y controladores para versiones modernas de Windows. La GPU puede reproducir juegos de esa década con velocidades de cuadro reproducibles en tiempo real. Barrie eventualmente lanzará esquemas de hardware, software y controladores a través de una licencia de código abierto.
El fabricante de hardware dijo que decidió construir un procesador gráfico desde cero porque no conocía los «detalles reales» de cómo funcionan las GPU. Al estar «extremadamente familiarizado» con el proceso de renderizado 3D desde el lado del software, Barrie se dio cuenta de que crear una GPU podría ser un proyecto personal factible, aunque desalentador.
Pasó «incontables horas» aprendiendo cómo funcionan los chips FPGA y cómo construir diseños de chips a través de la descripción del hardware, la verificación y el lenguaje de implementación. SistemaVerilog. Diseñar los esquemas para una tarjeta gráfica PCIe fue un «esfuerzo hercúleo», dijo Barrie. Quizás no sea sorprendente que escribir los controladores de Windows fuera la tarea más dolorosa del proyecto.
El desarrollador escribió una API de gráficos personalizada para comunicarse con la GPU y creó controladores del kernel de Windows para administrar la pantalla y las señales de audio. La FuryGPU puede renderizar Quake (el Quake original lanzado en 1996) a unos «sólidos» 60 fotogramas por segundo, lo que habría sido un verdadero placer para los jugadores de los años 90.
Barrie planea escribir más sobre su aventura de creación de GPU en su blog FuryGPU, comenzando con la tarjeta. Unidades de textura. También quiere optimizar su versión personalizada de Quake para que funcione mucho más rápido.