不忘初心:PowerVR 25周年

今年夏天Imagination PowerVR技术架构经历了25年的发展,为了庆祝这个重要的日子我们发布了一系列博客文章,回顾了这一突破性的3D图形技术的发展历史。

Simon Fenney是其中一名首席架构师,他参与了1992年开展的“三叉戟项目”,至今他一直在该公司工作,这篇文章Simon带我们回顾了他在PowerVR部门那些令人兴奋的日子。

1992年7月27日我加入了VideoLogic公司,之前的工作职责是3D和矢量图形技术开发。据我回忆,这个项目最初被命名为“三叉戟项目”,Martin Ashton在VideoLogic公司负责Rapier 2D图形卡的开发,他之前在一家飞行模拟公司任职,对于创造一个高效的3D渲染/表面覆盖的硬件架构他已经做了一些早期工作,这项工作得到了Tony McClaren(当时的部门经理)的支持。结合我在分块式渲染方面的一些经验,如今已经发展为基于Tile的延迟渲染(TBDR)的解决方案。

当时Martin在研究ASIC架构,我正在开发“RGL”(光线追踪图形库)API接口、设计一些简单的示例Demo、软件仿真以及驱动程序等,后来Paul Rowland和PaulRiley加入了我们,不久,基于FPGA的第一款板卡生产出来,这块板卡上我认为Martin使用了将近98%的FPGA的逻辑门资源,真是很了不起。

根据设计的原型,在功能完备之前还有一些问题要解决:工程采样的时候速度足够的快需要采用SDRAM存储器,但是即使这样,从DSP输出的超过总线带宽的信号会引起数据被写入随机位置,为了解决这个问题,Jeff Helicar在每个DSP的地址引脚焊接了一个小电阻,注意下图中红色的线不是错误而是一种修复,增加了实时阴影效果。

随后Pete Leaback和Stel Michael一起开发了一款游戏“ant demo”(双人网络飞行/对战游戏),不久Jim Page也加入了这个刚刚起步的团队。

三叉戟项目FPGA板卡——首个基于TBDR技术的板卡

我们很快向更多的人推广“三叉戟”FPGA板卡,我还记得与Hossein Yassaie去过几次日本进行展示,他是硬件部门的主管(后来升任CEO),随后1993年和 Ray Livesley去过阿纳海姆市,它是软件部门主管。可以说“三叉戟”板卡和配对主机在空中飞行了不少里程,然而不幸的是硬件(尤其硬件板卡上面还有一些繁杂的走线修改)不能够经受住频繁的振动造成了一些损坏,有时候需要尝试多次FPGA才能够加载成功,毫无疑问向别人展示过程中遇到了很大的问题。

调试过程中Hossein偶然发现它将一张纸放在板子的某个位置就能够让系统正常工作,后来证明问题是Xilinx上的很多管脚并没有焊接到板子上,相当于是悬浮着的,正好一张纸能够让管脚与焊盘重新接触良好。

即使在正常展示过程中我们也很难说服一些参观者,不过他们肯定没有在之前的消费级硬件上看到过这样的阴影效果,由于上世纪90时代FPGA技术上的局限性,“三叉戟”板卡并没有实现纹理等特性的提升,因为所采用的FPGA没有足够的逻辑门资源,不过后来我们就增加了这些特性。

那时我们还做了两款ASIC级板卡,分别是ISP “Sabre”和TSP “Texas”(纹理和阴影)。我们见识了Sega(世嘉)和Namco使用的怪兽级系统,我们觉得我们还可以做得更好,所以我们最初的产品目标命名为“Midas Arcade”,然而开发这种怪兽级板卡并不是一件简单的事,然而一块看似普通的PC插件式板卡“Midas 1”最终被开发出来(如下图)。

PC级Midas 1插件式板卡

上图就是MIDAS 1板卡(也可能是Midas 2),Namco公司曾将它用于Rave Racer(实感赛车)游戏,这块板卡有点像早期其他的PC系统的VGA板卡,后来被3D图形卡所取代。

这让我想起有一段难忘的回忆,1996年大约一二月份,我们将Midas 1板卡做出来不久,我们非常期待Namco公司的“Rave Racer”(实感赛车)进行功能测试。我工作到很晚并等着将游戏下载下来,开始我一边工作一边播放着CD唱片——声音可能有些大——通过PC外部的放大器和扬声器,后来到了深夜,办公室里面也显得特别的安静(那时候我手里有房间的钥匙和警报的源代码)。后来我终于收到了邮件,告知我游戏Demo可以提供使用并给了下载地址,然后我启动了“Rave Racer”游戏,第一次震撼到了我,赛车的声音一直徘徊在这个房子中。

经过Midas 1和Midas 2板卡的开发过程,我们后来开发出了尺寸更小的Midas 3,去掉了VGA接口,取而代之将像素输出通过PCI总线接口直接传输给2D图形卡(如下图)。

Midas 3板卡

那个时候我们与PC供应商康柏(Compaq)公司签订了协议,就是为其高端个人电脑设计制作插件式板卡,尽管我们非常想让他们采用即将完成的PCX1板卡(我认为我们当时完成的Arcade板卡并不是最好的),但是他们很着急所以就采购了差多不几百个板卡。

我记得还很清楚,当时Compaq只希望1MB或2MB的纹理RAM空间(纹理处理功能的参数),但幸运的是我们成功说服他们在PCX1板卡中将实现4MB的空间。

PowerVR PCX1电脑主板插件式板卡

后来我们很快实现了PCX2板卡,并增加了双线性滤波,简化了驱动程序,工作时钟频率锁定在66MHz以上。

然而尽管PCX1的速度不能够达到PCI总线的两倍,但是如果PCX2的工作频率低于两倍标准频率一切都不是问题,正如我们所预想的那样很多人超频使用PCX2板卡,NEC公司提供的开发库则显得有些保守,因为有些人将工作频率提高到75MHz来使用,当时是非常高的数值了。如果我们当时增加更多的特性该多好啊,但是当时对于这么小的一块板卡已经非常了不起了。

VideoLogic公司当时推出的Apocalypse(启示录)3DX加速器板卡包装

还有一次Mark Bulter和我在洛杉矶协助开发者进行相关开发,比如“Lemmy”和“Flag”非线性校正、将机械战士这款游戏移植到PowerVR系列板卡上。后来在7月4日(当地公共假日),那天偌大的办公室里面只有Mark和我两个人,周围也没有食品店,所以我们不得不依靠自动售货机,在公共假日期间自动售货机里只有一些不新鲜的松饼,尽管如此还是很值得的,Flag和Lemmy实现的非常好,PowerVR机械战士被很多人认为是最好的游戏版本。

1997年机械战士运行在PowerVR PCX2板卡上

下面的视频对机械战士2游戏运行情况进行了对比,涉及的板卡包括PowerVR/S3 Virge/ATI Rage/Matrox Mystique,我觉的我们的表现相当不错,注意采用PowerVR时的“损坏数据显示”,它是采用填充多边形实现的而不是传统的线框图实现的,这也是当时PCX2执行速度快的一个重要原因。

1997年机械战士运行在PowerVR PCX2板卡上

古墓丽影是PowerVR支持的又一款游戏,不过这次是Imagination公司实现的。下面的视频是3dfx与PowerVR的对比,注意5:05时这款游戏的运行分辨率为1027x768,刷新率在20-30Hz,水的蓝武效果显示。当然最好是不能够对不同类型的雾密度和蓝色阴影效果进行对比。

1997年古墓丽影(Tomb Raider)对比3dfx vs PowerVR

尽管时间很长,这些都是令人激动人心的回忆,我们当时在那样的条件下完成了多种板卡原型的设计与开发,25年过去了,尽管有很多方面都进行了很大的变化,但令人兴奋的是我们开发的技术依旧很强大。

原文链接: https://www.imgtec.com/blog/back-to-the-start-powervr-25/

声明:
本文为原创文章,转载需注明作者、出处及原文链接,否则,本网站将保留追究其法律责任的权利

--电子创新网--
粤ICP备12070055号