![]() |
|
|
|
2007年06月02日 21时24分
本文作者:陈寅初 点阅人次:
“在经过数月的延迟后,这款代号R600的RADEON HD 2900XT终于正式发布了,面对这款架构全面革新的产品,PCINLIFE经过精心的策划完成了这篇测试报告,希望以深入浅出的方式为大家全面展现RADEON X2900 XT的实力。”
RADEON HD 2900XT体系结构——纹理处理单元
R600拥有4个纹理单元矩阵,每个纹理单元矩阵内包含了8个纹理定址单元,Pixel shader/Geometry shader可以完全利用这8个纹理定址单元,vertex shader可以使用一半作顶点拾取(VF)而另一半作纹理拾取(VTF)。 在进行贴图处理的时候,纹理定址(texture addressing)单元的主要作用是把纹理的UV坐标转换成屏幕上的XY坐标并进行内插处理,简单来说就是纹理透视纠正。 纹理单元矩阵中包含了20个单周期FP32纹理取样器,vertex shader可以使用其中的4个作纹理拾取,另外的16个作纹理拾取;PS和GS可以充分这20个取样器作纹理拾取。 在抓取4个非过滤纹理元素的时候,R600的纹理拾取器依然和R5XX一样可以用1个纹理过滤拾取来实现(Fetch 4)。 R600的各个纹理单元矩阵能实现单周期4*FP16纹理双线性取样,而4*FP32纹理可以做到双周期。 各个纹理单元都和32KB的L1纹理cache、顶点cache直接相连,前者可以存放各类shader,而后者只能存放顶点shader。这样设计的好处是可以让顶点拾取的资源用于纹理拾取而不是在干等,增强非过滤操作的纹理读取性能。 R600拥有256KB L2 cache、RV630是128KB,而低阶的RV610则是只有L1 cache。 新设计的TMU完全遵循DX10规范,提供了新的HDR格式——RGBE9的支持,在特性规格上R600d的TMU和G80差不多。 RADEON HD 2900XT体系结构——渲染后端处理单元
R600拥有16个ROP,每个ROP可以每个周期输出一个色彩像素+一个深度元素或者是每个周期输出两个深度元素,和RX1000类似。 R600的ROP在深度、色彩缓存压缩上都比上一代产品有所改进,例如Z/Stencil可以被分离压缩,压缩率从RX1000的8倍提高到了16倍,在8x MSAA的时候等效128倍。此外,这些压缩的资料可以存放在显卡的本地内存以及芯片的片上cache内,这样的好处是可以达到更高分辨率的压缩(RX1000可以达到5百万像素)。 R600的ROP还有大量的Z优化措施,例如Z-range优化,可以约束深度测试操作到一个指定的可编程深度范围,提升stencil阴影的性能。 在R600的介绍中,AMD还提到了Re-Z。我们知道,pixel shader是可以修改Z值,但是我们并不知道pixel shader会把Z改成多少,因此传统上你必须在pixel shader后面来做z-buffer检测,但是这样的话,一些传统的Z优化措施就实现不了,而Re-Z可以在pixel shader执行的前后的都对Z-buffer进行检测。 和Xenos一样,R600引入了Hierarchical Stencil缓存技术,以金字塔方式保存若干份分辨率不同stencil信息粗糙版本,提高stencil操作的性能。 R600引入了被称之为全分发环路设计的内存控制器,和以前R5XX的环路相比,现在R600的内存通道移除产生的影响将更加少,在内存定址能力方面,R600实现了40位的内存定址空间,相当于1TB的容量。 定制滤镜抗锯齿——CFAA 说起CFAA,我们不妨先把时间倒推到NVIDIA的NV20。代号NV20的GeForce 3是第一款DX8图形处理器,也是第一款具备MSAA的桌面产品,在它所提供的抗锯齿模式中有一个被NVIDIA称之为Quincunx的抗锯齿技术。 锯齿的产生主要是因为取样不足,在倾斜角度上图元(三角形、几何线)都会产生边缘形成锯齿,而纹理或者着色器程序有时候也会形成像素化痕迹和摩尔条纹,我们平常说的抗锯齿就是为了解决这些问题。 我们知道,在multisampling的时候,只有Z(深度)信息是运算于更高倍数的分辨率上,而色彩像素方面除了几何体边缘上的像素基本上都是渲染于和最终输出的屏幕分辨率一样的分辨率上。 在2X MSAA+Quincunx的时候,像素内的两个取样点颜色都是取自同一个纹理元素(texel)的颜色,而这个纹理元素颜色是以假设位于像素的中心位置计算获取的。如果多取样的取样点“a“踏在像素中心上,自然能获得正确的颜色。 位于像素内其他位置的取样点就未必能获得相同或者说正确的颜色,因为其他取样点的颜色只是像素中央点纹理元素颜色的拷贝,和取样点本身所在位置的真正纹理元素颜色可能存在差异,特别是在纹理元素要比像素小的情况下。 最初的Quincunx就是把取样点放在像素中心以及像素和像素之间的边角上,因此取样点颜色和像素中心颜色发生偏差的机会就相当高,应用了Quincunx后,大家的反应都是一样的——AA效果不错,但是画面看上去很“糊”。 到了NV17的时候,NVIDIA引入了偏移像素中心的方式,虽然仍然以2x Multisampling作取样,不过这种方式的其实是把一个较大的色彩偏差+一个较小的色彩偏差变成两个较小的色差偏差,NVIDIA称之为accuview shifted AA,算是Quincnux的微小修订版,降低了边缘色彩的不平滑跳动提供更好的AA效果,只是仍然并不能很好解决纹理模糊的问题。 那么了解上面的这些资料,这和我们现在这片完全不同时代的R600 CFAA有什么意义呢? CFAA是定制滤镜抗锯齿的英文单词首字母缩写,在启用CFAA后,取样点的权重可以根据一个可编程的滤镜来确定,例如靠近像素中心取样点权重最高,色彩更加接近像素中心纹理元素的色彩,最终抗锯齿的效果在纹理色彩误差方面最可以做到尽可能的小。
为了充分发挥CFAA的优势,ATI引入了可以形象地称之为小帐篷(Narrow-tent)、大帐篷(Wide-tent)取样点的覆盖模版。 其实从ATI提供的这些"帐篷"取样模板图来看,非常接近于高斯滤镜,换句话说,选择"帐篷式"模板的CFAA对于大量密集(高频)线条边缘的运动处理效果应该比box filiter更能取悦眼球:
小帐篷就是以像素中心为原点,画一个圆圈,直径是像素(在图形学中,大多数情况下像素是四方形)的对角线,这个圆圈在水平和垂直方向都会涵盖到邻近像素边缘上。而大帐篷的直径则更大一点,在取样上更加”越轨”了。当然这只是目前的滤镜形式,未来可能会在驱动中做出一些更新。 AMD最初的驱动是提供了最高24x AA模式,就是16x CFAA+边缘侦测,不过后来这个模式被拿掉了,边缘侦测的滤镜切换目前被做成了独立的小软件。AMD表示今后会把这个设定重新纳入到CCC中。 与「RADEON HD 2900XT 512MB测试报告」相关的本站内容连接
|
| |
|
| |