PowerVR这个名字,老玩家听第一反应多半是世嘉Dreamcast开机时那个蓝色漩涡,新玩家看到它可能是芯动科技的"风华"桌面显卡,或者拆解苹果A系列处理器时看到的GPU编号。这个来自Imagination Technologies的图形架构,今年满打满算已经走过了三十年,中间经历了PC市场的失败、移动市场的封王、被母公司出售、又重新被芯动带回桌面端。想把这三十年讲清楚,得先弄明白一件事:为什么一个早年在PC上打不过3dfx和NVIDIA的架构,能在手机世界里活成霸主,现在又开始觊觎桌面独显?
这篇我打算先从头讲架构内核和这段波澜壮阔的历史主线,从世嘉游戏机时代,一路聊到芯动的风华系列桌面显卡。整个过程会穿插大量TBDR技术细节、历代产品的成败原因,还有我这些年看GPU市场积累下来的一些观察。适合对GPU硬件底层设计感兴趣的朋友,也适合想做架构对比的图形程序开发者。
1. PowerVR最硬的底牌:分块与隐藏面消除
1.1 分块渲染:把屏幕切成豆腐块
PowerVR的看家本领叫TBDR(Tile-Based Deferred Rendering),核心思想一句话:别让GPU对着整块屏幕傻画,先切成小块再逐块搞定。
传统光栅化流程是这样的:GPU收到一个三角形,就把它光栅化成像素,写入帧缓冲。不管这个像素最终能不能被看见,它都得跑一遍完整的着色流程,包括采样纹理、计算光照。屏幕越大、三角形越多,这种浪费就越严重。PowerVR的做法完全不同,它会先把屏幕划分成一个个小方块,通常是16x16或32x32像素,然后把三角形的几何数据先排序,再把它们分发到对应的"豆腐块"里。每个块使用芯片内部的片上高速缓存,颜色和深度数据都可以先放在缓存里算完,再统一写回显存。
这个设计的最大红利是省带宽。显存带宽向来是GPU最贵的资源,传统架构每画一笔颜色、更新一次深度,都要和显存打交道。分块渲染把大部分数据交换限制在芯片内部,只有块与块之间的最终结果才需要触碰外部显存。你可以在心里做个换算:一个1080p画面有大约200万个像素,传统渲染可能要在同一个像素位置反复写几十次颜色数据,而分块渲染在块内就完成了覆盖与合并,每块写回显存的次数极少。这在当年内存带宽只有几百MB/s的1990年代,是非常激进的省带宽思路。
1.2 隐藏面消除:在着色之前先扔掉看不见的像素
TBDR里的"Deferred"不是现代游戏里deferred shading那个概念,指的是另一件东西:隐藏面消除(Hidden Surface Removal,HSR)。
传统渲染管线是深度测试和像素着色分开的,三角形在没有做深度比较之前,每个光栅化出来的像素都要乖乖跑着色器。哪怕它后面马上要被另一个三角形完全盖住,这趟着色也算白干了。现代GPU用early-z来缓解这个问题,但那时候的GPU根本没有这个概念。PowerVR的逻辑很绝:既然我能先在块内把所有几何数据收集齐,那我干脆在着色之前就做一次隐藏面判定,把被遮挡的像素直接扔掉。只有最终可见的"幸运像素"才进入纹理采样和光照计算。
这个思路放到今天依然很先进。现代游戏场景里overdraw(过度绘制)极其严重,一帧画面里被遮蔽的像素可能是最终显示像素的好几倍。PowerVR的HSR相当于在片元着色器门前装了个安检口,先对照深度关系筛掉一大半人,剩下的人才有资格入场费力气。它省下的不只是带宽,还有芯片算力,这也是为什么PowerVR核心在低功耗场景下表现一直很亮眼。
1.3 为什么在30年前就押注了"减少无用功"
1990年代的显卡市场,打的都是蛮力战。3dfx、NVIDIA、ATI,大家比的都是填充率,谁能把像素往屏幕上糊得更快,谁就是赢家。PowerVR坚持用算法去削减无效像素,相当于别人都在拼力气搬砖,它想先研究哪块砖不用搬。这个策略在那时被很多人看成是"取巧",但事后证明它押对了方向:GPU的带宽瓶颈越来越严重,能效比越来越重要。
这种延迟计算的思想其实和现代图形里大量优化方向是一致的,不管是前向渲染还是延迟着色,大家最终都会想办法提前剔除无效计算。PowerVR在30年前就把"不画看不见的像素"作为产品核心理念,到今天依然是图形性能优化的核心命题。
2. 世嘉Dreamcast:PowerVR的第一座高峰
2.1 世嘉为什么在众多方案里选中了PowerVR
1997年,世嘉正在开发下一代主机,代号"刀"(Katana),需要一颗图形芯片。当时市面上能选的大致有NVIDIA的RIVA 128、3dfx的Voodoo 2和PowerVR。世嘉最终选了PowerVR2,也就是后来Dreamcast里的那颗芯片,原因是多方面的。
当时世嘉的工程团队对3dfx非常熟悉,因为世嘉之前在一些街机主板上用过3dfx的芯片,但3dfx一贯不给你改芯片的自由,技术支持也差强人意。NVIDIA那时候还太年轻,经验积累不够。PowerVR那边反而配合度极高,愿意为世嘉做定制优化,而且它的TBDR架构意味着可以不用那么高的显存带宽就能达到不错的填充率,这对降低整机成本至关重要。再加上日立SH-4 CPU搭配PowerVR2的方案在成本和功耗上都很合理,最终世嘉拍板,Dreamcast在1998年带着这颗PowerVR2登场。
这颗芯片的实际规格放到今天看当然微不足道,但当年它的底气在于:得益于隐藏面消除,可以让游戏开发者不需要刻意控制场景深度复杂度。很多DC早期游戏直接用大量几何体堆画面,不担心填充率爆掉,这在同期的Voodoo、RIVA平台上是不太敢想的。
2.2 在主机上的实际表现:省带宽的优势如何体现
Dreamcast的生命周期并不长,只有三年左右,但它留下了一批画面在当时非常惊艳的作品。比如《莎木》,那个开放世界雏形里复杂的街道、建筑和人物,对像素填充的压力相当大。开发组在DC上敢于铺那么多细节,有一部分底气正是来自PowerVR2的隐藏面消除能力,让不必要的像素不会白白消耗填充率。
另一个显著的例子是《格兰蒂亚2》和大量日式RPG,场景里大量半透明粒子、魔法特效。半透明混合在传统渲染里是带宽杀手,因为混合操作必须反复读帧缓冲,PowerVR的分块机制把这种混合限制在片上缓存里完成,效率要高得多。所以DC尽管只有8MB显存,实际能表现出的画面丰富度却常常超出纸面参数给人的预期。
不过PowerVR2也有它麻烦的一面。它的开发文档晦涩,管线行为与PC显卡差异大,很多习惯了传统IMR流程的欧美开发者第一次接触时很不适应。这也为后来PowerVR在开放性平台的失败埋下了伏笔:它确实强,但它的"强"需要开发者理解和配合。
2.3 桌面PC的滑铁卢:Kyro怎么被打趴下的
Dreamcast的顺利让Imagination信心爆棚,2000年他们把PowerVR3做成了PC显卡,取名Kyro。坦白说,Kyro系列的纸面性能不差,在16位色深、低分辨率下甚至能和GeForce 2 GTS扳手腕,而且功耗低得多。但它在PC市场上的败局,几乎是教科书级别的"技术优势败给生态壁垒"。
PC游戏场景和主机完全不同,要兼容老旧的OpenGL、DirectX 5/6/7,还要对付Windows下乱七八糟的驱动模型。TBDR的优势在API层面很难自动发挥,反而因为数据在块间不断排序和分发,产生大量驱动开销。更致命的是,早期PowerVR在Windows下的驱动稳定性糟糕,有玩家反映切个分辨率都花屏。游戏厂商也不会为占有率极低的显卡单独做优化。到GeForce 3登场后,Kyro在高端市场彻底失去存在感。
从商业角度看,Kyro的失败其实帮Imagination做了一个关键判断:与其在PC市场和NVIDIA、ATI拼刺刀,不如退到没有历史包袱的移动嵌入式领域。那里没有庞大的D3D兼容性包袱,TBDR的省带宽优势又是天生的适配项。于是PowerVR在2000年代初期开始全面转向手机、PDA、车载等低功耗场景。
3. 移动时代:藏在iPhone里的黄金十五年
3.1 MBX到SGX:低功耗如何成为标配
转向嵌入式之后,PowerVR先后推出了MBX和SGX系列。MBX时代,手机GPU还是个稀罕物,大家的3D能力基本停留在"能跑个立方体旋转已经很牛"的阶段。真正让PowerVR起飞的是SGX系列,它是首批完整支持OpenGL ES 2.0的移动GPU之一,也就是支持了可编程着色器。
从iPhone 3GS开始,苹果每代A系列芯片都离不开PowerVR:SGX535用来打基础,SGX543系列让iPad的图形性能一度吊打同期掌机,后来A7里的G6430、A8里的GX6450直到A10里的GT7600系列,苹果在这段时间里一直是Imagination的最大客户。与此同时,三星的Exynos、联发科、瑞萨等一大批移动SoC也都拿PowerVR核心当作自家GPU方案。可以说在2010年代前半段,你是很难绕开PowerVR的。
为什么厂家都爱用PowerVR?一个关键原因是它在低功耗条件下的性能曲线非常友好。一款手机SoC的GPU功耗顶多几瓦,如果采用传统IMR方案,光是往显存(当时是LPDDR)里写颜色和深度数据就要耗掉大量功耗。PowerVR用片上缓存兜住了绝大多数帧缓冲操作,同样的功耗预算下它可以堆更多的计算单元。另外,SGX代的IP授权模式成熟,Imagination愿意按需定制核心大小,从单核到八核随便组合,这种灵活的"按需点菜"模式特别受芯片厂商欢迎。
3.2 苹果的长期合作与转向自研
苹果和PowerVR的关系在2017年迎来转折。那年苹果在A11 Bionic上开始使用自研GPU核心,让Imagination股价一度崩盘。苹果给出的解释很明确:自研GPU可以更好地配合Metal API和自家CPU的异构计算设计,定制空间更可控,性能提升也更可预期。
但这里有个容易被忽略的点:苹果的自研GPU并非从零开始,它与Imagination后来也签了授权协议,底层很多专利和设计思路仍然覆盖着PowerVR的遗产。而且苹果自研GPU的架构思路里依然能清楚看到分块渲染的影子,毕竟在移动平台,不搞分块渲染几乎是不可能的事情。
A11之后,Imagination失去了最大客户,但它并没有死掉。在被凯桥资本收购、经历私有化和重新上市的折腾之后,这家公司调整了产品策略,从"只做高端大核心"转向覆盖高中低全产品线,A系列、B系列、C系列、D系列接连推出,目标市场也从手机扩展到了汽车、AR/VR、数据中心和桌面显卡。它不再只卖"苹果显卡",而是想成为全面开花的GPU IP供应商。
3.3 芯片架构授权这门生意的逻辑
理解PowerVR的现状,还得理解IP授权这种模式。芯片设计大致分三种:买现成的芯片、买IP自己拼SoC、自己从头设计芯片。绝大多数手机SoC厂商属于第二种,他们会从ARM买CPU核心,从Imagination或者Arm自己那里买GPU核心,然后用自己的总线把它们串起来。
IP授权的核心卖点是"省时间和省风险"。自主研发一个GPU核心,团队需要人数不多说,光验证和流片测试也是天文数字。直接买成熟IP,等于把最难的图形学部分外包出去,自己只需要管集成和调优。Imagination的GPU IP还有个大杀器:多核可扩展性。小核心不够用就4核并联,4核不够就8核,芯片厂商可以根据自己产品的功耗和性能目标自由选择。这种灵活性,是芯动科技后来选择它做桌面显卡的重要前提。
4. 芯动桌面显卡:PowerVR架构的二次出征
4.1 芯动为什么选择了IMG而非自研架构
芯动科技是一家总部在中国的高性能IP和定制芯片设计服务公司,长期做高速接口IP和SoC集成。他们想推出一款桌面级GPU时,面前有两座大山:一是GPU微架构设计复杂度极高,不是拉个团队一年半载就能搞定的;二是软件生态和驱动栈更是无底洞。
选择直接授权IMG的GPU IP,几乎是性价比最高的路径。PowerVR的IP在移动端积累了十几年,驱动栈支持OpenGL ES、Vulkan、OpenCL,还有大量已验证的硬件模块。芯动要做的,是把这些IP核心按照桌面级需求重新封装,加上自己的显示输出、视频编解码等模块,再做成一块完整的独立显卡。这种"IP授权+系统集成"的模式,在全球半导体行业其实很常见,只是桌面独显领域过去很少有新玩家敢这么干。
4.2 风华系列的核心技术亮点
芯动把基于IMG GPU IP做的独立显卡命名为"风华"系列。根据公开信息,风华系列选择了IMG的高性能产品线,也就是B/C系列架构,支持PCle接口,具备多核可扩展特性,整体走的是低功耗和高效能比路线。
可以重点关注的几个技术点:
- 多核并联扩展:IMG的高端IP允许把多个GPU核心塞进一颗芯片,用统一总线协调工作,类似CPU的多核思路。芯动可以根据市场定位去做不同规格的芯片,从入门到高端都能覆盖。
- TBDR的低功耗优势:桌面显卡的功耗动辄一两百瓦,但TBDR因为省带宽,理论上能把不小的图形性能压进一个相当低的功耗区间。这对追求能效比的场景(比如紧凑型主机、低功耗服务器、边缘计算)很有吸引力。
- 显示与计算一体化:风华系列除了图形渲染,还集成了AI加速单元和视频编解码能力,等于把通用计算、图形渲染、媒体处理放在同一块芯片里。这种全能型定位,和现在市场上一卡走天下的趋势是吻合的。
不过这里我必须说一句公道话:风华系列的实际性能和软件生态,目前还有很多需要验证的地方。显卡这个市场,光有硬件不够,驱动、游戏适配、开发者关系,每一环都是十年功。芯动选择PowerVR IP等于拿到了一个好底子,但后面要做的事情还很多。
4.3 桌面级TBDR要面对的三个现实难题
第一个难题是生态兼容。Windows上堆积了几十年的DirectX API,游戏开发者不会为一款新显卡专门适配渲染路径。TBDR在小块内做隐藏面剔除,对MRT(多渲染目标)和几何着色器这类桌面高频特性并不友好,需要驱动很聪明地在分块和直通模式之间做切换。
第二个难题是性能预期。PowerVR的技术路径从来不是"堆算力",而是"省浪费"。这决定了它在一些内容非常简单的场景里表现惊艳,但在重度GPU负载下,绝对值能不能追平NVIDIA和AMD的主流产品,还得打问号。作为一款新入场的桌面显卡,第一代产品如果不靠极致性价比来抢市场,很难打动挑剔的DIY玩家。
第三个难题是驱动与软件工具链。GPU驱动是世界级难题,尤其在Windows和Linux下要覆盖OpenGL、Vulkan、OpenCL、DirectX这么多标准。你硬件设计得再好,驱动不稳定照样是块砖头。PowerVR在PC上的历史失败,种子其实就种在驱动上。芯动的工程团队必须把这一步走稳。
5. 一张表看清IMR、分块渲染和TBDR的区别
5.1 三种渲染路径对比
很多人对GPU渲染架构的传统分法不清楚,这里直接上对比表。
| 架构类型 | 全称 | 基本思路 | 代表产品 | 突出优势 | 核心代价 |
|---|---|---|---|---|---|
| IMR | Immediate Mode Rendering | 三角形直接光栅化写入帧缓冲 | NVIDIA GeForce、AMD Radeon | 灵活,适合复杂桌面API | 带宽消耗高,overdraw浪费大 |
| TBR | Tile-Based Rendering | 屏幕分块,先收集几何再逐块光栅化 | ARM Mali全系 | 省带宽,适合移动端 | 分块开销复杂,扩展性有挑战 |
| TBDR | Tile-Based Deferred Rendering | 分块基础上再做隐藏面消除,再着色 | PowerVR、IMG全系 | 省带宽+省算力,能效比极高 | 实现复杂,需驱动深度配合 |
从表里能清楚看到,IMR是"直接干",TBR是"分块再干",TBDR是"分块、筛选、再干"。它们的本质差别在于:IMR把每个三角形当成独立任务,TBR把每个tile当成一个容器,TBDR则更进一步,在每个容器里先做"质检"再决定要不要着色。
5.2 为什么桌面GPU长期用IMR而移动GPU几乎都分块
桌面GPU不信奉分块渲染,原因很现实。第一,桌面显卡的TDP预算动辄一两百瓦,它能堆大量计算单元去弥补无效像素的浪费,省带宽的意义没那么大。第二,DirectX和OpenGL的API行为预设了帧缓冲是"一个全局的大画布",很多指令(比如全屏后处理、多重采样抗锯齿)天然面向全局操作,非要分块执行反而增加状态切换成本。第三,桌面GPU的显存带宽高,GDDR6/X堆到几百GB/s甚至TB/s,带宽没有紧张到必须靠分块来救的程度。
但移动端的逻辑完全不同。手机内存带宽有限,同时又没有风扇,功耗上限卡得死死。如果采用IMR,GPU会在一帧画面里反复读写显存,写睡眠,上半旗,光这一个动作就烧掉了大量功耗。分块渲染把绝大部分帧缓冲操作锁在片上缓存里,省下的带宽和功耗对整个SoC设计都是决定性的。这也是为什么移动GPU阵营基本都走向了分块方案,不管是Arm Mali、高通Adreno还是IMG PowerVR,大家都在做类似的事情。
5.3 好消息是:桌面也开始"分块化"了
最近这些年,带宽问题也烧到了桌面头上。4K分辨率、光线追踪、超采样重建、大规模程序化贴图,每一项都在疯狂挤压显存带宽。NVIDIA和AMD的显卡规格表里,缓存越做越大,L2容量从几MB翻到几十MB甚至上百MB,本质上就是在把热数据尽量留在片上,思路和PowerVR当年殊途同归。
现代图形API的变化也在向这个方向靠拢。DirectX 12和Vulkan把渲染控制权交还给开发者,开发者可以自己管理资源状态,可以在渲染中途显式插入屏障,这给分块或缓存友好的渲染管线留出了优化空间。换句话说,PowerVR坚持了30年的"省带宽"思路,在桌面端正在重新变成全球GPU厂商的共同议题。
6. 关于PowerVR的常见误解与技术学习建议
6.1 四个容易被搞错的说法
第一个误解是"PowerVR已经死掉了"。这明显不准确,PowerVR一直在以IP授权的方式活在大量芯片里,加上芯动风华系列的发布,它的名字重新回到了公众视野。说它"不做芯片"是对的,说"死掉"就太武断了。
第二个误解是"PowerVR性能弱,所以只能给手机用"。实际上PowerVR的架构性能不弱,弱的是它在PC生态里的驱动适配和市场占有率。一个架构能同时服务从几毫瓦的IoT芯片到上百瓦的桌面卡,本身就能说明它的通用性和弹性。
第三个误解是把TBDR的"延迟"等同于现代游戏的deferred shading。TBDR的deferred指的是隐藏面消除这件事被延迟到像素着色之前统一处理,而deferred shading指的是把所有光照计算放到一个G-buffer阶段之后。两者差很远,只是中文名称撞了车,容易混淆。
第四个误解是"IMG只有古老的PowerVR,没有新技术"。实际上IMG近几年的A-E系列迭代非常快,在光线追踪、AI加速、汽车图形上都有布局。2023年他们还发布了面向下一代应用的RTXM系列光追IP,架构底蕴依然在。
6.2 想深入研究的三个方向
如果你对GPU架构本身感兴趣,我建议从几个方向入手。
看文档。IMG官方的白皮书和开发者文档写得相当清楚,尤其是关于HSR和分块调度的内容,是目前公开资料里少有的详尽解释。你不需要是Imagination的客户也能通过注册开发者账号获取大部分SDK和文档。
读开源驱动。Mesa3D项目里有PowerVR驱动的开源分支,虽然覆盖的硬件型号不是全部,但通过代码可以很直观地看到提交几何数据、分配tile、执行HSR这些底层步骤,比纯看文档理解深得多。
动手写软渲染器。试着用CPU模拟一个简单的分块渲染:把三角形列表按包围盒分配到网格块,然后逐块做深度剔除和着色。不需要多高效,走一遍流程你就会明白为什么PowerVR当年要这么做,也能理解片上缓存为什么能带来那么大的带宽收益。
6.3 对架构演进模式的一点观察
个GPU架构能活三十年,市面上找不到第二个。x86保持底层兼容走了五十年,那是桌面生态给的垄断红利。GPU架构却是高速迭代的市场,NVIDIA和AMD基本每两三年就换一代微架构。PowerVR靠的是一招鲜吃遍天:把分块+隐藏面消除这套底层逻辑坚持到底,外围根据需要不断加光追、加AI、加多核扩展。这种"内核稳定、外圈灵活"的策略,对很多做技术产品的人其实都有参考价值。
结尾:一点个人的体会
写了这么多PowerVR的历史,我最大的感受还是那句话:带宽永远是GPU的第一问题,只是不同时代解决方案不同。PowerVR三十年前用分块和隐藏面消除来省带宽,是那个时代的异类;如今NVIDIA堆缓存、AMD堆带宽、ARM搞分块,绕来绕去大家都在优化同一件事。芯动把PowerVR带回桌面显卡,如果真能把TBDR在带宽和功耗上的优势转化成实打实的产品竞争力,这出"老架构新生"的戏就还有续集。至于风华系列实际用起来怎么样,驱动稳不稳、游戏跑不跑得动,那是另一篇可以展开的话题了。