3dfx品牌消失25年后,经典Voodoo3显卡迎来Linux驱动更新。即将上线的Linux 7.3内核将升级tdfxfb帧缓冲驱动,支持无需PC BIOS即可完成显卡初始化,配套实验性3D驱动也在推进,对复古计算爱好者而言值得关注。
如果你是上世纪90年代的PC硬件爱好者,对3dfx的Voodoo系列显卡肯定不会陌生。距离3dfx倒闭已经过去25年,这款经典老卡最近又有了新的驱动进展。
Voodoo3将获Linux 7.3驱动更新
Linux内核7.3将更新tdfxfb帧缓冲驱动,不需要依赖系统固件运行显卡视频BIOS,就能自主完成Voodoo3的初始化。
原有驱动默认假设PC固件已经完成显卡初始化,这套逻辑在非x86电脑、主显卡为其他产品的系统、无法运行旧视频BIOS的新BIOS平台上会失效。
开发者Daniel Palmer在搭载PCI桥的Amiga 4000上使用Voodoo3时遇到了初始化问题,才推动了这次补丁开发。
目前补丁仅支持Voodoo3,原计划包含的Voodoo4、5因为BIOS布局不同,相关支持已经从当前补丁中移除,补丁已经在x86-64系统和带Mediator PCI桥的Amiga 4000上完成测试。
驱动仅支持基础帧缓冲功能
更新后的tdfxfb驱动可以生成帧缓冲设备/dev/fb0,驱动Linux虚拟控制台,支持兼容Linux帧缓冲接口的应用直接绘图。
不过fbdev是Linux的遗留图形接口,已经被DRM/KMS图形基础设施取代,这次更新不会让Voodoo3变成现代可用的GPU。
加载tdfxfb不会提供Mesa栈、现代OpenGL、Wayland加速或者3D功能,仅支持Linux控制台、嵌入式帧缓冲应用等场景,不适合在现代桌面PC上安装使用。
实验性3D驱动同步推进
开发者还在同步开发Voodoo3的独立3D驱动路径,通过新的/dev/tdfx3d杂项设备将显卡寄存器空间暴露给用户空间,允许软件直接编程控制显卡3D硬件。
配套的smoltdfx用户空间库和smolminigl小型OpenGL 1.x实现,不需要X、Mesa或者Glide就能直接驱动Voodoo3的3D硬件。
目前这套3D方案已经在真实Voodoo3硬件上完成测试,能够运行Quake,但性能表现一般,Voodoo3的多纹理功能还有待优化。
开发者同时开发了Voodoo3的QEMU仿真程序,用来对比测试仿真和真实硬件的渲染差异,调试驱动问题。
可支撑复古虚拟化场景探索
这套驱动组合未来可能给复古计算和虚拟化场景带来新的可能,理论上可以通过PCI直通将Voodoo3分配给Windows 98或者DOS类的虚拟机使用。
不过硬件重置、接口暴露等问题仍待解决,本次的初始化功能只是这块应用拼图的其中一环,暂时没有完整可用的落地方案。