Si alguna vez se ha preguntado si una FPGA Xilinx Zynq UltraScale+ se puede configurar como una GPU 3D para juegos propia capaz de acelerar Quake y otras favoritas de la década de 1990, tenemos una respuesta, y es sí. En teoría, al observar las especificaciones de la FPGA y lo que debe hacer, debería ser totalmente posible con una gran cantidad de esfuerzo. Ahora estamos empezando a ver pruebas y, con suerte, materiales que le ayudarán a seguir adelante si lo suyo es la informática retro y la programación FPGA. Creado por el ingeniero de software Dylan Barrie, FuryGpu es la culminación de cuatro años de trabajo que comenzó como un proyecto simple. Barrie estaba interesado en la idea de fabricar una GPU casera como su próximo pasatiempo. «Pasaría unos meses haciendo un cubo giratorio o algo así, y terminaría de una vez», predijo, según su relato de la construcción del kit. Sin embargo, el alcance del proyecto se expandió más allá de las demostraciones de gráficos y entró en el ámbito de los juegos reales acelerados en 3D que se ejecutan en una tarjeta gráfica casera. FuryGpu utiliza una PCB personalizada equipada con un sistema en módulo Kria que cuenta con una FPGA Xilinx Zynq UltraScale+, un par de salidas de video y una conexión PCIe 2.0 x4. Hasta ahora, FuryGpu cuenta con un reloj de GPU de 400MHz, un reloj de unidad de textura de 480MHz, un front-end compatible con FP32 y soporte para filtrado lineal y bilineal. Sin embargo, la GPU en FPGA no tiene sombreadores programables y tiene una función fija. Ejecuta juegos a través de la propia API FuryGL de Barrie en lugar de DirectX3D o Vulkan. FuryGpu: cuando estás tan orgulloso de tu invento, necesitas tu logotipo… Fuente: Dylan Barrie. Haga clic para ampliar Por supuesto, admitir solo una API casera significa que Barrie tiene que portar juegos a su FuryGpu. Dijo que «si bien no es una tarea enorme, tampoco es algo trivial». Afortunadamente, la década de 1990 fue anterior a la llegada de los megajuegos y la mayoría de los títulos fueron desarrollados por un equipo pequeño, o incluso por un solo programador. En otras palabras, agregar soporte para FuryGL no fue demasiado complicado. Adivina qué causó el mayor problema. Si bien programar una FPGA para convertirla en una GPU con aceleración 3D y portar juegos a una API personalizada es bastante desafiante, aparentemente no fue la parte más difícil. «De todas las partes de este proyecto, escribir controladores para Windows ha sido la más dolorosa», dijo Barrie. Dice mucho que portar un juego es más fácil que escribir controladores en Windows. Barrie ha estado compartiendo su odisea para lograr que FuryGpu funcione desde 2022, centrándose principalmente en la compatibilidad con OG Quake. Cada vídeo de su serie sobre el hardware muestra una nueva característica que se agrega, como renderizar partículas, agregar texturas y habilitar audio. No fue hasta el 1 de marzo que Barrie finalmente pudo mostrar (ver más abajo) FuryGpu ejecutando Quake con una resolución completa de 720p y 60 fotogramas por segundo, lo que fue posible gracias a que finalmente se agregó la operación asincrónica de CPU y GPU a los controladores FuryGpu. En este nivel de rendimiento, FuryGpu es aproximadamente equivalente a una tarjeta gráfica de mediados de la década de 1990, una época en la que 3dfx y Matrox todavía estaban en funcionamiento y antes de que Nvidia comenzara a impulsar el término GPU (y dijera que lo había inventado). Youtube Video Plus, FuryGpu se puede utilizar para trabajos básicos de computadora. Puede mostrar la interfaz UEFI para interactuar con el BIOS de la placa base, el escritorio de Windows funciona normalmente y también hay audio funcional. Tal vez ver YouTube esté fuera de discusión, pero un DVD de baja resolución podría estar dentro de lo posible. Para aquellos que quieran crear su propio FuryGpu, hay buenas noticias: el proyecto se convertirá en código abierto. Sin embargo, Barrie dice explícitamente que no sabe cuándo sucederá eso y afirma que lo hará «en algún momento». Más detalles aquí y aquí. ® PD: Sí, conocemos cosas como la tarjeta VGA casera de Ben Eater, un 486DX en una FPGA, todo el proyecto MiSTer, etc. Pero el trabajo de Barrie es bastante interesante y nos llamó la atención. Comente a continuación si hay esfuerzos de hardware similares que haya encontrado últimamente.

Source link