在PC硬件和复古游戏圈依然声名显赫的 3dfx Voodoo图形加速卡,如今以全新的 FPGA 实现形式“重返”舞台。在多款DOS和PC模拟器已经能较好重现 Voodoo 表现的基础上,一位开发者选择直接在可编程硬件上重构这颗上世纪的经典芯片。
3dfx这一品牌在2000年被 英伟达 收购并最终消失,但其Voodoo系列加速卡仍是众多玩家和3D图形爱好者心中的“神卡”,同时也是各类复古改装项目和老游戏硬件方案中的核心组件。目前,而硬件玩家也在不断尝试基于原始芯片或自制方案的改装项目。
来自 荷兰 公司VideowindoW的 首席技术官 Francisco Ayala Le Brun,选择通过FPGA为Voodoo寻找一条全新“转生”路径。他使用SpinalHDL这种硬件描述语言,再将其转换为可在现代 现场可编程门阵列 (FPGA)上运行的 数字电路 模型。
Le Brun在技术说明中强调,Voodoo 1虽然在年代上已十分久远,却绝不是一个设计简单的芯片。与现代 GPU 不同,它不具备变换与光照硬件或可编程 着色器 功能,所有图形能力都以固定功能形式“写死”在 硅片 里,包括用于Gouraud着色的渐变计算、纹理采样、mipmapping、多级纹理过滤(双线性和三线性)、alpha裁剪、裁剪计算等一整套流水线。
在基于3dfx的图形渲染流程中,而Voodoo加速器则将带纹理的三角形尽可能快速地绘制到屏幕上。Le Brun指出,这种“看上去很朴素”的职责划分,很容易让人误以为硬件结构也很简单,实际上哪怕只渲染一个三角形,而且这些都不是现代意义上的可编程流程,而是以固定电路形式固化在芯片中。
在重构Voodoo 1的过程中,Le Brun需要解开其内部隐藏的复杂性:重新梳理控制路径、 寄存器 语义以及极为“深度”的流水线时序设计,使得这个早期3D加速器在FPGA上也能像当年那样,把复杂渲染任务按像素切分,在多个阶段流水处理,从而实现远超纯软件渲染的数据吞吐能力。
借助SpinalHDL以及寄存器传输级(RTL)设计等现代工具,Le Brun在不丢失细节的前提下,把Voodoo的架构理念“编码”进了FPGA实现中。他将这一项目命名为“SpinalVoodoo”,并已在 GitHub 上开源,目前仅有原版Voodoo芯片的一小部分功能尚未补齐。
全部评论