8月23日消息,Linux 7.3版内核为3dfx Voodoo 3显卡带来了一项更新,tdfxfb帧缓冲驱动获得改进,现在可以由Linux自行初始化显卡,不再依赖系统固件先执行显卡BIOS。

这一改动源于原有的tdfxfb驱动假设Voodoo显卡在系统启动时已被PC固件初始化完毕,这在传统x86平台上是合理假设。

但在非x86平台、系统固件无法执行旧版VGABIOS的新主板,以及Voodoo作为副显卡使用的场景中,这个假设就不成立了。

开发者Daniel Palmer在Amiga 4000上加装PCI桥接器使用Voodoo 3时就遇到了这个问题,Linux能检测到显卡,但Voodoo完全处于未初始化状态,显示器提示无信号。

死了25年3dfx Voodoo 3还在更新!还能在真卡上跑3D

新代码从显卡自身的视频BIOS中读取配置信息,由Linux完成初始化,驱动VGA核心并建立可用的显示输出,目前这段代码已在现代x86-64系统和Amiga 4000上测试通过。

加载tdfxfb后,用户可获得一个Linux帧缓冲设备(通常是/dev/fb0),Voodoo能驱动显示器显示Linux虚拟控制台。

但Linux fbdev是老式图形接口,早已被DRM/KMS架构取代,所以这并不意味着Voodoo 3真正适配当代系统。

它不提供Mesa图形栈、现代OpenGL、Wayland加速或任何3D功能,本质上只是让Voodoo从Linux能识别的PCI设备变成能往屏幕上输出像素的显示适配器。

该开发者还在为Voodoo3开发独立的3D驱动通路,通过新的/dev/tdfx3d misc设备将Voodoo的寄存器空间暴露给用户空间,用户程序可通过mmap()接口直接编程显卡的3D硬件。

死了25年3dfx Voodoo 3还在更新!还能在真卡上跑3D

据Palmer介绍,该项目已在真实Voodoo 3硬件上测试通过,无需X、Mesa或Glide即可直接通过寄存器渲染,MiniGL实现已经能在真卡上运行《雷神之锤》。

Palmer同时开发了一个QEMU上的Voodoo 3模拟器用于调试,测试程序可以在模拟显卡和真实硬件上同时运行,通过比对帧数据差异来修正模拟器行为。

据了解,Voodoo3诞生于1999年,是3dfx首款全功能单芯片显卡,将2D加速、3D渲染、VGA显示核心、RAMDAC转换器集成在单颗芯片中,搭配128-bit 8/16MB SDR显存,最高支持2048x1536分辨率。

死了25年3dfx Voodoo 3还在更新!还能在真卡上跑3D

【本文来源:快•科技】