PowerVR的TBDR被黑,,还是本身就是这样???????
gpu吧
全部回复
仅看楼主
level 12
pengzhenxx 楼主
TBDR全称Tile-based Deferred Rendering,它是Power VR独特的TBR技术的一种延伸实现手段。TBR/TBDR通过将每一帧画面划分成多个矩形区域,并对区域内的所有像素分别进行Z值检查,在任务进入渲染阶段之前就将被遮挡的不可见像素剔除掉。由于在渲染之前进行Z-culling操作,这种充满想象力的做法极大地,甚至可以说海量的削减了最终被渲染像素的数量,不仅大幅降低了系统对像素的处理压力,更极大的节约了显存带宽及空间的开销。
TBR技术对显存的节约
Z Occalusion检测软件——VillageMark
尽管TBDR不再像传统的TBR那样需要通过CPU来进行Z值检查,但是TBDR过程需要对画面内所有的像素进行一次“额外”的load过程,这个过程本身无论从哪个角度来讲都是与节约显存带宽背道而驰的,尤其是在复杂度极高但Z-Occlusion(Z闭塞)并不严重的场景中更是如此。另外,尽管对画面的矩形划分越细密,GPU对像素进行Z判断的效率和准确率越高,但TBDR过程对画面的矩形切割非常机械,这种划分经常会导致很多多边形和纹理被Tiles所切割,这些多边形和纹理都必须经过2次甚至4次读取才能保持自身形态的“完整”,这无疑加重了几何和纹理处理过程的负担。如果场景的多边形数量较多,这种切割还会导致scene buffer被快速的消耗殆尽,scene buffer的溢出会直接导致Z判断延迟的急剧增大,这对整个处理过程的影响是巨大的。
割裂多变性过程
通俗的说,TBDR需要在屏幕上画很多很多的小格子,然后把格子里的所有像素都拿出来做某种检查,没通过检查的“坏”像素就会被丢掉。尽管丢掉这些没通过检查的像素可以让后面的工作量减小,但这个检查本身对渲染没有任何意义,所以没有被丢掉的像素就相当于走了一遍无用的过场。与此同时,划分小格子的过程会切坏很多多边形和纹理,想要让这些多边形和纹理能够从“误伤”中幸存下来,你切了它们多少刀就要重新读取它们多少次。如果多边形本身就很多,被误伤的概率就更大,这会使得系统的某种缓存被快速消耗干净,缓存没了,系统干什么都不可能快得起来。
网上的资料。。。。@crayon嘻哈小新
2013年02月12日 12点02分 1
level 13
有利当然也有弊.. 但是延迟渲染也是提高渲染效率的方式,隐藏面消除特性也比之传统架构更有优势,不过对于内存带宽的需求也是事实.. 所以ipad开始用四通道,同时用543的psv也专门配备了显存 以前关于tbdr的讨论似乎也不少,多是说tbdr消耗的成本和功耗和所得的性能的比利不如人意,不过随着IMG不断的优化,这个观点应该是慢慢改变了吧.. DX11.1也把TBDR标准化了吧..
老实说我也不是很了解.. 不敢多说了..
2013年02月12日 14点02分 2
俺一直以为,TBDR可以减少大量GPU工作量,全是优点,,,想不到这么费带宽,,,不直接用TBR算了
2013年02月12日 14点02分
回复 pengzhenxx :要不停的对像素做扫描,目测还是加重工作量..但是可以节省大量overdraw的渲染,是利是弊还是要看厂商的把握..
2013年02月12日 14点02分
回复 crayon嘻哈小新 :tegra的GPU看起来并不强大,,为什么NVIDIA宣称三角生成能力和像素填充料会非常高,,高通的GPU浮点运算能力非常强大,但性能却不好呢??NVIDIA貌似也不是延迟渲染啊。。不会只是游戏优化问题吧。。。。[疑问]
2013年02月12日 15点02分
回复 pengzhenxx :英伟达也说了,Tegra目前主打软件优化牌.. Tegra目前都没有堆computer性能,旨在强化特定图形性能,而高通自snapdragon一代开始就开始强化异构并行computer,当时opencl都还没流行,高通的方案可以算移动opencl的早期雏形了,所以adreno的浮点向来很强,而且一直是fp32渲染
2013年02月12日 17点02分
level 13
[抖胸]
2013年02月12日 16点02分 3
level 13
懒洋洋 flops 每秒浮点运算次数是咋计算呢?
2013年02月12日 16点02分 4
FLOPS是单精度运算能力,只有FP32精度才能称为FLOPS,这个得看ALU了,比如NVIDIA GF100的标量流处理器包涵一个标量ALU支持FP32,一个周期内完成一个乘加运算,算2FLOPS,这个*频率*数量就是理论上的单精度浮点运算能力了
2013年02月12日 16点02分
比如GTX580 流处理器跑1544MHz,512个流处理器,512*2*1544=1.58Tflops,当然这只是理论值
2013年02月12日 16点02分
回复 pengzhenxx :拿GF100为例怎么看ALU呢?
2013年02月12日 17点02分
level 1
大炮村。。明天我把这段话里的东西给他扒干净
2013年02月12日 16点02分 5
不是在炮村上看到的,,不过说得很有道理,俺以前一直以为TBDR很牛逼,能提升很多性能,但也只有SGX在用,这只是里面的一段内容,后面还有很多
2013年02月12日 17点02分
回复 pengzhenxx :。。这就是炮村一个编辑写的。英伟达脑残粉。。丧心病狂的捧n卡贬低a卡。。
2013年02月12日 17点02分
回复 narutohuhao2 :桌面级别的显卡全部是IMR渲染架构啊,逮着啥,渲染啥,,overdraw难以避免,而且要经常访问显存,比较吃显存带宽,,,高通,Mali都是TBR,延迟渲染,将画面分格到缓存中渲染,降低和内存的延迟,SOC内存带宽本来就不高
2013年02月12日 17点02分
回复 narutohuhao2 :至于A卡或N卡,说说实话我的观点也是NVIDIA,AMD之前的VLIW SIMD架构,虽然图像渲染问题不大,但作为GPGPU就会非常坑爹,DX10以后微软也大力鼓励使用GPGPU,AMD在GCN时也完全抛弃了VLIW SIMD架构
2013年02月12日 17点02分
level 6
qualcomm跟mali是TBR,但不是deferred shading
TBR+deferred shading只有IMG的PVR
--
而且PVR跟mali的tile比较下,16x16 或者 32x32
Adreno的他们好像管叫binning, 渲染块非常大……以GMEM(片上的gpu memory)为单位,早期A200这些GMEM 256KB,现在的320的GMEM都有1MB ……
--
就移动设备可怜的带宽来说,TBR还是很有需要的……
--
炮村这个,没搞清楚,有部分黑的是TBR,有部分又黑deferrd shading……
首先,这两个总体上都是能节省带宽的:
TBR减少frame buffer的改写,节省带宽
HSR + deferred shading,减少overdraw,减少了texture fetch,当然节省带宽,同时也减少fragment shader的计算量吧
如果黑TBR,那mali, adreno也中枪……确实tile之间的geometry都是要重新fetch的吧?不过移动平台屏幕那么小,三角形撑死也多不到哪儿去吧
分辨率倒是越来越高,能节省点frame buffer带宽更有利吧
至于说HSR误伤多边形啥的我是没明白说啥,感觉是在胡扯……
scene buffer溢出确实可能有,因为一开始根本不知道scene buffer会有大—— 不过现在内存啥的也很便宜啊不是么,大家都在往上加。
--
TBDR更多的是出于功耗和带宽的考虑,所以在移动平台用的不错。
如果说TBDR功耗更差了,还吃带宽,那IMG的市场占有率怎么来的…… 都不跑去用vivante吗?
总的来说,IMG的PVR,拥有最好的性能/功耗比,同时也是最节省带宽的。
但缺点是面积非常大。
2013年04月06日 06点04分 6
学习鸟。。。又来一大手啊。。。GPU越来越好了。。。[呵呵]
2013年04月06日 07点04分
其实adreno也能做类似tbdr的操作,开发时称作Psuedo-TBDR,伪tbdr,gmem的一些操作也类似于pvr的object 另外adreno320的gmem是个shared mem,video codec也能使用
2013年04月06日 13点04分
涨姿势~
2013年04月11日 10点04分
回复 crayon嘻哈小新 :Adreno的TBDR为什么是伪?
2013年05月03日 14点05分
level 11
本身延迟?
2013年10月23日 04点10分 7
1