Ein funktionierender Prototyp des Projekts FuryGpu wurde vorgestellt, der eine selbstgebaute GPU auf Basis des FPGA Xilinx Zynq UltraScale+ entwickelt, die als separate Platine gestaltet ist und über den PCIe-Schnittstellen mit dem PC verbunden wird. Die Beschreibungen der Hardware-Blöcke sind in der Sprache SystemVerilog realisiert, während das Platinen-Design in der freien Software zur Automatisierung von Leiterplatten-Design, KiCAD, erstellt wurde. In der aktuellen Version ermöglicht die GPU FuryGpu bereits, das Spiel Quake mit einer Rendering-Leistung von 60 FPS bei einer Auflösung von 1280 x 720 zu starten.
Das Projekt wird seit 2021 als Hobby von einem Programmierer entwickelt, der sich auf die Entwicklung von Computer-Spielen spezialisiert hat und an Hardware interessiert ist. Die Schaltpläne der Platine, Verilog-Beschreibungen und Treiber sind derzeit nicht öffentlich verfügbar, aber der Projektleiter hat angekündigt, alle mit FuryGpu verbundenen Entwicklungen zu veröffentlichen, nachdem einige rechtliche Fragen mit seinem Arbeitgeber geklärt wurden (eine Abstimmung ist notwendig, um sich vor möglichen Ansprüchen des Arbeitgebers abzusichern).

In der aktuellen Entwicklungsphase sind die Möglichkeiten von FuryGpu mit einer hochentwickelten Grafikkarte aus der Mitte der 1990er Jahre vergleichbar. Die Funktionen der GPU sind durch eine Reihe von festgelegten Funktionen definiert; die Ausführung von programmierten Shadern wird derzeit nicht unterstützt, während der Fokus auf Komponenten für das Rendering, die Rasterung und die Texturverarbeitung liegt. Zur Durchführung grafischer Operationen steht eine eigene Grafik-API FuryGL zur Verfügung, die der Vulkan-API ähnelt, jedoch aufgrund fehlender Unterstützung für Shader nicht mit ihr kompatibel ist.
Zu den bereits verfügbaren Funktionen gehören:
- Vier unabhängige Tile-Rasterer;
- Betrieb der GPU mit einer Taktfrequenz von 400 MHz, Betrieb des Textur-Management-Blocks mit einer Taktfrequenz von 480 MHz;
- Frontend zur Durchführung von Gleitkommaberechnungen (fp32);
- Block für das Mappen und die Verarbeitung von Texturen, der lineare und bilineare Filterung mit Unterstützung für MIP-Texturierung unterstützt;
- PCIe Gen 2×4 Schnittstelle. Verfügbarkeit von DisplayPort- und HDMI-Ports zur Verbindung mit dem Monitor.

Quelle: opennet.ru
