O desenvolvedor de software de jogos Dylan Barrie criou sua própria placa gráfica. O projeto FuryGPU, no qual ele trabalhava sozinho nas horas vagas, levou quatro anos para ser concluído. Durante este período, Barry conseguiu melhorar significativamente os seus conhecimentos em engenharia, nomeadamente no desenvolvimento de aceleradores gráficos e sua programação. Sua placa gráfica PCIe, baseada na plataforma Xilinx FPGA, é capaz de rodar o jogo Quake.

Fonte da imagem: Dylan Barrie

A ideia de criar sua própria placa de vídeo surgiu com Barry depois que ele conheceu o projeto de outro entusiasta, Ben Eater, que montou do zero um computador programável de 8 bits. Como você pode ver nas fotos, o FuryGPU parece um acelerador gráfico PCIe bastante típico de 20 anos atrás. É verdade que está equipado com modernos conectores de vídeo DisplayPort e HDMI. Este projeto não criou apenas hardware. De acordo com Barry, escrever os drivers para Windows foi na verdade a parte mais difícil do desenvolvimento.

Barry começou a realizar seu sonho de criar uma placa gráfica depois de adquirir uma placa de desenvolvimento FPGA Arty Z7 e fazer alguns desenvolvimentos e testes preliminares. O projeto posteriormente recebeu um impulso com a estreia dos Xilinx Kria SoMs (System-on-Modules), que combinam “FPGAs Zynq UltraScale + incrivelmente baratos com uma tonelada de módulos DSP, um número relativamente grande de LUTs e FFs e um reforço reforçado Núcleo PCIe”, explica o entusiasta.

Para passar da placa de prototipagem para o design da placa de vídeo visto nas fotos, Barry aprendeu sozinho a linguagem de descrição e verificação de hardware SystemVerilog, bem como o pacote de software de design eletrônico KiCAD EDA/CAD. Segundo ele, desenvolver o circuito FuryGPU com PCIe de 4 pistas exigiu um esforço hercúleo, mesmo com o circuito FPGA embutido no SoM. Depois de construir o FuryGPU, ele começou a escrever software para ele.

Segundo o entusiasta, desenvolver o driver Windows para FuryGPU acabou sendo a parte “mais dolorosa” de todo o projeto, embora sua principal atividade nos últimos 14 anos tenha sido software de renderização gráfica na indústria de desenvolvimento de jogos. Inicialmente, Barry queria apenas criar uma placa de vídeo e provar que funcionava rodando nela um simples vídeo de demonstração. Porém, com o desenvolvimento do projeto, o entusiasta se propôs a atingir um nível aceitável de desempenho da placa de vídeo no clássico jogo para PC Quake.

Depois de escrever o driver do Windows, ele também escreveu uma API personalizada para fazer interface com a GPU, drivers do kernel do Windows para exibição e áudio, e acabou com “uma GPU completa capaz de renderizar Quake a 60 quadros por segundo”.

Há um mês, Barry publicou um vídeo acelerado do Quake rodando nesta placa de vídeo em resolução 720p com taxa de quadros de até 44. Porém, segundo o desenvolvedor, a placa é capaz de mais. Ele descobriu alguns gargalos que eliminará durante a otimização.

FuryGPU é um projeto de código aberto. Barry vai publicar um artigo no site do projeto no qual descreverá detalhadamente todo o processo de desenvolvimento de uma placa de vídeo, publicará diagramas de circuitos, drivers, APIs, materiais adicionais, além de uma versão do jogo Quake otimizada para este acelerador.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *