0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >设计应用 > 一款基于帧捕捉的开源图形调试器应用设计

一款基于帧捕捉的开源图形调试器应用设计

2018-04-04
类别:设计应用
eye 162
文章创建人 拍明


如果你是一名图形开发者,那么你很可能在某个项目中遇到过RenderDoC,它是一款图形调试器,帮助很多开发者节省了大量的时间,现在,RenderDoC在PowerVR上获得了支持,并且也支持 PVRTC压缩格式。

RenderDoC是什么?

RenderDoc是一款基于帧捕捉的开源图形调试器,它遵从MIT协议,涵盖了一系列的图形API和开发平台:Vulkan、D3D11、D3D12、OpenGL、OpenGL ES以及Windows 7/10、Linux和安卓等操作系统。

RenderDoc起初是一个业余项目,仅支持Windows和D3D11,对于游戏开发者来说,RenderDoc天生就是一款可靠的调试器,它一直关注于实际的应用案例、直观的工作流程并且不断满足开发人员的要求。随着时间的推移,它逐渐扩展到支持更多的API和平台上,目前该软件的作者与Valve Software公司达成合约全职开发这个项目。

最新推出的V1.0版本增加了很多新的特性,因为三星和谷歌提供的帮助,安卓平台也实现了对OpenGL ES和Vulkan的支持。

RenderDoc的操作与PVRTrace非常的相似,它们都是采集每帧数据用于调试,PVRTrace适合调试多帧数据,RenderDoc则非常适合检查每一帧的细节。因此这些工具在使用时无疑是互补的。

RenderDoc获得PowerVR支持.png

纹理查看器选项:在这个视图中你可以查看所有输入和输出纹理,同时也包括了PVRTC。现在还提供了叠加层,支持所有的mip层、纹理分片和表面。

具体特性都包括哪些?

RenderDoc包括非常多有用的特性,尤其在分析图形应用时起到了非常大的帮助。

• 灵活的纹理查看器,包括不同可见范围、通道以及子资源的查看。同时支持复杂的自定义着色器实现可视化的纹理打包或解码。

• 网格查看器展示了顶点流的输入和输出,通过可视化选项来查找选择具体要检查的顶点资源。

• 有组织的管道状态视图,能够监测不同类型的资源。

• 着色器编辑,可以替换不同的着色来查看对于数据帧的影响。

• 统一资源查看器,链接资源到UI,以及查看所涉及到的API调用。

• 运行调试特性,比如书签、资源重命名,使项目案例能够自动保存,通过注释能够定位到具体的问题。

• 为渲染对象调试不同的图层,可以显示哪些像素通过或失败,比如深度、模板或背面消除等,以便能够快速的诊断问题。

• 导出缓存、网格和纹理数据到文件,可借助外部工具进一步检查。

• 深度Python脚本能够访问所有UI上提供的数据,控制整个分析过程。

关于RenderDoC的完整使用说明可以详细查看应用文档。

Imagination科技与RenderDoc

如上文所述,PVRTC是PowerVR和iOS设备上的实际格式,目前RenderDoc也开始支持这种格式。

PVRTC已经获得虚幻4、Unity、CryEngine和Lumberyard等游戏引擎的支持。Imagination已经与RenderDoc的开发者展开合作增加Vulkan对PVRTC纹理支持、选择PowerVR设备来测试RenderDoc,确保可靠的使用体验,一些用于测试的设备包括:

• 魅族 Pro 7 Plus

• 宏碁 Iconia One 10 B3-A40

• 宏碁 Chromebook R13

你可以查看我们的网站获取更多关于我们平台的信息。

RenderDoc获得PowerVR支持.png


管道流查看选项:你可以看到所有已绑定到图形应用的资源

PVRTC

PVRTC是PowerVR系列专有的纹理压缩方案,提供每个像素4或2比特的颜色数据压缩(4/2bpp)。它使用插值和调制方案来压缩纹理数据,纹理数据被编码为两幅低分辨率的图像,以及全分辨率、低比特精度的调制信号。更多关于这个压缩技术的具体信息可以查看白皮书:使用低频信号调制实现纹理压缩。

目前PVRTC已经分为两代,PVRTC1和PVRTC2都支持4bpp和2bpp压缩比,它们大体上相似,但是PVRTC2有其他的优势:

• 图像质量:一般来说,相比PVRTC1,PVRTC2将提供更好的图像质量,在色彩大面积不连续的图像中,不需要纹理处理技术比如边界扩展,图像质量将显著提高。在skybox中的图像边界也不再需要了,而且非贴片的纹理也会有很大的改善。这主要是因为添加了专门的模式来处理纹理部分之间的高对比区域。

• 无二次幂限制维度:PVRTC2为开发者提供了任意大小的NPOT(无二次幂限制)纹理,它是一个没有维度的纹理,不需要限制在二次幂范围内。

• 子纹理(Sub-texturing):与PVRTC1不同,sub-texturing仅在PVRTC2中支持,提供数据字边界(分别适用于PVRTC2 4bpp或2bpp的4x4或8x4)。这将会进一步支持应用程序的纹理映射等技术,应该注意的是,这需要在要替换纹理的各部分启动硬转换标志模式。

PVRTC在相同的数据内存中支持不透明(RGB)和半透明(RGBA)纹理(不像其他格式比如S3TC等需要额外的数据来支持一个完整的alpha通道)。PVRTC具备竞争力的压缩比率(4bpp或2bpp)同时提供非常高的图像质量,与未压缩的32位像素纹理相比这表示节省内存空间比达到8:1或16:1。Alpha通道数据是在每个数据字基础上编码的,因此完全不透明的纹理部分就不需要对Alpha通道信息进行不必要的编码了。

在PVRTC中,数据范围可达到64位的字,每个数据都包括低分辨率图像和4x4或8x4调制数据中的某一个像素。与传统基于块的格式不同,PVRTC使用相邻的数据字来重建原始图像,而前者使用单个块的内容来重建纹理上的像素点(texel),因此,与基于块的压缩技术相比,这将会带来相当可观的视觉增强。

PowerVR

英国公司Videologic最初创立了PowerVR,PowerVR第一代分PCX1和PCX2两种,PCX1采用0.5微米,PCX2采用0.35微米,二者皆为PCI卡,仅限于3D功能,类似voodoo1/2,但不需要外置连接线而是通过PCI总线传输数据,显存64bit,8MB,核心同显存运行频率约60-66Mhz,单渲染管线单周期单纹理。

第一代

早期缺点

众所周知传统早期3D显示芯片处理过程是先进行几何运算,然后读取、生成纹理等操作,然后通过深度测试决定像素是否可见,之后将可见像素进行必要的处理后输出到Framebuffer(帧缓存)显存上,之后由RAMDAC读取显存经过数模转换输出到显示器上。这个过程中有一大缺点就是无论像素是否可见,都必须经过渲染,这将浪费大量填充率和带宽,这被称为overdraw。

解决方法

为了解决这一矛盾,PowerVR的TBR在几何运算后,将屏幕的像素分成了很多矩形小块,先经过每个小块的深度测试,测试小块是否可见决定小块中的像素是否应当被渲染,之后将需要被渲染的再交给渲染管线去处理,之后输出。这样一来,不可见的像素已经提前被剔去不用被渲染,很大程度上节省了带宽,减少了渲染管线的压力。

然而这一技术并非完美无缺,在经过小块的深度测试的过程中需要一定时间,尤其对于比较多的碎小密集的多边形的时候这更为明显,在PCX1/2当中这一过程需要CPU的处理,因此加重了对CPU能力的需求,PCX至少需求MMX 166才能发挥功效。此外一些涉及到Z-buffer技术的程序在TBR的模式下往往运行有问题。是延续传统渲染模式,加大带宽和填充率来弥补这一问题,或是采用TBR技术,二者孰优孰劣这对并无绝对定论。nVidia一直沿用传统模式,芯片设计以更多的渲染管线、更高的频率、更高规格的显存来解决问题。后来ATI也拿出了自己的解决办法---Hyper-Z。

PCX2

PCX2的性能比PCX1有了一定提升,速度并不慢,可以在运行转为它们优化的Quake2的时候效果很好,硬件指标上也胜过Voodoo,达到每秒120万多边形和6000万像素的填充速度,在同时代产品中首屈一指。同时支持D3D、OpengGL,SGL,其中SGL是OpenGL的部分子集特为PowerVR进行了专有扩展。但是在实际使用中,由于驱动使兼容性较差,许多游戏运行有问题,并且对CPU要求较高(甚至不如更低平台上voodoo的速度),导致销售收了很大影响,但在Voodoo2之前的一段时间里市场占有率却达到第二。

PCX1芯片的产品中比较常见的是Apocalypse 3D和NEC PC 3DEngine,PCX2中比较有名的是Matrox在看到PCX2的优势后而决定生产的唯一没采用自己芯片的加速卡产品M3D。

ARC-1

后来在1998年的3月的CeBit展览Videologic拿出了ARC-1,但只是beta版,依然PCI接口,频率66Mhz,依然仅有3D功能,貌似基于PCX2,据说创新和帝盟有意去生产此芯片的零售版显卡。但是似乎后来没了音讯。

第二代

PVR250DC

此后Videologic与Sega合作,为Sega的新游戏机设计图形芯片,实际就是PowerVR二代,所对应的DC版核心是PVR250DC,桌面版产品叫做Neon250,采用它的Dreamcast于1998年2月推出。但是因此极大地导致了Neon250的PC桌面产品的延期,比预期Neon250发布时间晚了一年有余,比DC推出时间则晚了一年半。这是因为NEC更看重长期的订单量大、市场稳固的游戏机图形芯片的制造,游戏机一般3-5年更新换代一次,而风云多变的PC市场平均6个月为一周期,从长远利益考虑,显然NEC更愿意为了上百万订单的游戏机市场投入更多精力。这款芯片同时也有对应于Sega的街机NAOMI(New Arcade Operation Machine Idea)的版本,相应的图形核心名为CLX2,搭载16MB显存,250万多边形每秒,5亿像素每秒,这款街机板于1998年问世。而2000年问世的NAOMI2则搭配两颗CLX2,搭配VideoLogic的ELEN芯片做为几何变换和光影效果加速器,搭载32MB显存,画面效果相当不错。

Neon250

1998年12月2日的COMDEX刚结束,NEC和Videologic宣布联合推出Neon250,开始提供样片,大家对这款产品十分有信心,对外公布多边形处理速度500万每秒,像素渲染速度2-5亿每秒。虽然比DC版性能有所下降,但是其公布的资料在当时来说性能仍然是很有竞争力的。NEC产品销售经理Charles Bellfield说“PowerVR 250令人难忘的性能表现超出了我们的预期”,同时还表达了Neon250的战略意义“PowerVR 250标志着NEC/VideoLogic针对游戏市场的跨平台战略终于初具规模了,该战略将使家用游戏机、个人电脑和街头游戏机上的游戏软件具有前所未有的可移植性,因而能够通过大量销售的硬件和软件极大的降低硬件系统成本和游戏软件价格”。一切看起来很美好,无论是性能还是战略前景。

然而此后Neon250却迟迟没有真正上市,直到1999年秋季Neon250才终于上市,芯片仍然由NEC制造,也称PVR250,有AGP-2X和PCI接口两种,而AGP版比PCI的速度仅快很少一点。核心和显存都是125Mhz,采用SDRAM,64bit,32MB显存,渲染管线仍然是1条,每条管线单纹理单元。拥有250Mhz RAMDAC,支持OpenGL、SGL、DirectX6。仅由Videologic制造过此芯片的显卡。支持FSAA,不支持mipmap dithering,使用三线性过滤的时候不能像voodoo3/TNT2那样通过mipmap dithering那样来实现相同效果,所以只能用真正的三线性过滤很影响速度。因为发售时间极大地延迟,3dfx和nvidia的第四代产品已经上市了,加上它频率低,所以其性能在当时来说比较慢,介于TNT-TNT2的程度,价格也不便宜,所以销量很差,在欧洲市场相对于其它地方情况还算好一点,目前存世量颇小。虽然这款产品情况销售十分糟糕,但是采用这款芯片的DC游戏机的情况却挺不错。

值得一提的是从Neon250开始TBR渲染模式前期的深度测试功能不再需要CPU处理,而是集成于显示芯片内部,分担了CPU的负担,以后PowerVR的显示芯片设计亦是如此。

第三代

VideoLogic后来变为声、显卡制造,从VideoLogic分出来的Imagination Technologies成为VideoLogic、PowerVR、Ensigma、Metagence这四者的母公司,其中Ensigma、Metagence是面向DSP设计。

Kyro

Imagination Technologies将PowerVR技术授权给了STMicroelectronics(意法半导体),称为PowerVR三代的Kyro诞生,由PowerVR设计ST最终成型并且制造,此系列驱动一直由PowerVR开发。ST有自己的芯片生产厂,曾经nVidia的NV1、Riva128/ZX的芯片有很大部分就是由ST生产的。ST产的NV1叫做STG2000用于Diamond Edge 2120/2200,市场上很多riva128/ZX产品芯片上都有ST的Logo。

Kyro采用0.25微米工艺,核心代号STG 4000X,0.12亿晶体管,有PCI和AGP-4X版本,工程版核心、显存皆115Mhz,最终出货版提升到125Mhz核心,128bit 32/64MBSDRAM显存,270Mhz RAMDAC,2*1管线架构即双管线单纹理单元。支持DX6、EMBM(环境凹凸贴图),不支持T&L,继续采用TBR模式。

Kyro的核心尺寸很小,同时发热量也小,晶体管数量也明显低于同期nVidia的产品,其目的在于降低生产成本,使晶圆能切割出更多的芯片,以性价比优势来和其它产品竞争。其性能基本介于TNT2 Ultra与GF256 SDR版之间,一大特点就是32bit色相对于16bit色性能下降很小,在32bit色下甚至可胜于GF256 SDR。由于Kyro采用了块状渲染架构,所以进行高分辨率渲染之后输出到低分辨率这样方式的全屏抗锯齿时可以避免大量高分辨率下不必要的像素渲染,所以打开全屏抗锯齿时速度降低也比较小。产品基本还算成功,采用其芯片的有Inno3D KYRO 2000,VideoLogic Vivid!, 撼迅Evil Kyro,Hercules 3D Prophet 4000。不过驱动仍然不算很完善,有时会出现不兼容、死机的情况。

Kyro2

仅仅过了几个月,Kyro2推出,核心代号STG 4500,0.18微米,0.15亿晶体管,核心、显存频率提升至175Mhz,仍然不支持T&L,依然是2*1管线,270Mhz RAMDAC,支持部分DX7功能,TBR模式。其内部接口为AGP-2X,但可通过硬改显卡刷新BIOS支持AGP-4X模式。采用它的芯片的有Hercules 3D Prophet 4500、VideoLogic Vivid!XS。由于ST没有0.18微米生产能力,所以芯片的生产交由TSMC(台积电)。

Kyro2在16bit色性能介于MX和GTS,32bit性能相对于16bit色依然下降很小,此时往往比GTS还好。整体来说比KYRO平均提升1/3以上,尤其在高分辨率在某些项目甚至提升可达将近1/2。在当时号称MX400杀手,在欧洲市场较受欢迎,甚至据说比MX400销售量还好一点,尤其Prophet 4500销量颇大。此卡还支持渲染通道内最大8层纹理,对于多层贴图的游戏中比较占优势,比如SeriousSam部分场景采用多达5层贴图。虽然和TNT2、Voodoo3一样都是只有两条纹理管线,每个周期只能处理两个层纹理,但是面对多纹理时,TNT2、Voodoo3这样传统架构需要拥有至少同等数量的管线才能在一个周期内处理完这样的多层纹理,若层数超过管线数量则只能占用更多周期处理完纹理之后再进行硬件混合,将会降低运行效率。而如果依靠增加纹理管线则会使芯片过于复杂。而对于Kyro2,会把纹理分成多进程处理,将已处理过的存入缓冲区中,然后再累加进行下一个纹理合成处理,这样就减少了以往多个管线合成所占用的资源,对于提高性能和降低带宽利用都是有好处的。只是在早期驱动只开放了4层,而发售时的驱动已经比较完善了,驱动控制面板功能丰富,甚至包括超频选项,运行比较稳定,而且大多数不兼容的现象都可以通过驱动程序里面的选项设置进行解决。

Kyro2存在的问题在于渲染管线明显太少,2*1管线相对于当时GF2的4*2管线来说填充率严重受到限制,并且SDR显存提供的显存带宽相对于已普遍使用的DDR在一定程度上限制了性能的发挥。

KyroII

随后KyroII SE发布,核心代号STG 4800,相对于Kyro2变化的只有核心、显存频率提高到200Mhz,接口完整支持AGP-4X,其它部分保持不变。采用它的显卡有Hercules 3D Prophet 4800、VideoLogic Vivid!XS Elite。

第四代

此后PowerVR的第四代KyroIII开始研发,代号STG5000,但是一直没有结果。

第五代

PowerVR此后转向掌上图形市场并且取得很大成功,它们的显示芯片PowerVR MBX授权给了Intel,0.13微米工艺诞生出来的就是众所周知的2700G,代号Marathon,和PXA27x系列处理其搭配用于PPC,比如DELL X50/51v,其中2700G3/G5分别集成384/704KB显存,可以在640*480下流畅运行Quake3。拥有83万/秒多边形及像素填充能力,支持全屏抗锯齿和硬件T&L,拥有MPEG1/2/4解码运算能力,功耗仅1mW左右,性能已经接近99年的台式机图形芯片。

它们的新一代掌上图形芯片PowerVR SGX510/520/530属于第五代PowerVR产品,采用统一架构,SM3.0,OpenGL 2.0,依然采用TBR渲染模式,支持H264解码,目前已经授权给NEC和Intel,作为Intel产品计划命名为2900G。





责任编辑:Davia

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: 调试器

相关资讯