许多嵌入式/移动 GPU 都提供对称为Pixel Write Speed和Texel Write speed的性能寄存器的访问。您能否解释一下如何从实际 GPU 硬件的角度来解释和定义这些术语?
2 回答
我认为像素和纹素之间的区别对您来说非常清楚。无论如何,只是为了让这个答案更加“普遍”:
- 像素是屏幕空间的基本单位。
- 纹理元素或纹理元素(也称为纹理像素)是纹理空间的基本单位。
纹理由纹素数组表示,就像图片由像素数组表示一样。在对 3D 表面进行纹理处理(称为纹理映射的过程)时,渲染器将纹素映射到输出图片中的适当像素。
顺便说一句,使用填充率而不是写入速度更为常见,您可以轻松找到所有必需的信息,因为这个术语非常古老且被广泛使用。
回答你的问题
所有填充率数字(无论使用什么定义)都以 Mpixels/sec 或 Mtexels/sec 表示。
那么填充率背后的原始想法是写入帧缓冲区的完成像素数。这符合理论峰值填充率的定义。所以在过去的好日子里,用 Mpixels 来表示这个数字是有意义的。
然而,第二代 3D 加速器增加了一项新功能。此功能允许您渲染到屏幕外表面并将其用作下一帧中的纹理。所以写入缓冲区的值不再一定在屏幕像素上,它们可能是纹理的纹素。这个过程允许几个很酷的特殊效果,想象一下渲染一个房间,现在你将这个房间的图片存储为纹理。现在您不显示房间的这张图片,而是将图片用作镜子甚至反射贴图的纹理。
使用 MTexels 的另一个原因是游戏开始使用多层多纹理效果,这意味着屏幕上的像素由各种子像素构成,这些子像素最终混合在一起形成最终像素。因此,根据这些子结果来表达填充率更有意义,您可以将它们称为纹素。
更新
纹理填充率 = (# of TMU - 纹理映射单元) x (核心时钟)
卡片每秒可以渲染到屏幕的纹理像素数。
很明显,具有更多 TMU 的卡在处理纹理信息时会更快。
性能寄存器/计数器Pixel Write Speed
并Texel Write speed
维护有关处理/写入的像素和纹素的统计/计数操作。我将解释峰值(最大可能)填充率。
像素率
图片元素是光栅图像中的物理点,是显示设备屏幕的最小元素。
Pixel rate
是 GPU 在一秒钟内可能写入本地内存的最大像素量,以每秒数百万像素为单位。实际的像素输出率还取决于很多其他因素,最显着的是内存带宽 - 内存带宽越低,达到最大填充率的能力就越低。
像素速率是通过将数量乘以ROPs (Raster Operations Pipelines - aka Render Output Units)
核心时钟速度来计算的。
渲染输出单元:像素管道获取像素和纹素信息,并通过特定的矩阵和矢量运算将其处理成最终的像素或深度值。ROPs
执行本地内存中相关缓冲区之间的事务。
重要性:像素率越高,GPU 的屏幕分辨率越高。
纹素率
纹理元素是纹理空间的基本单位(3D 对象表面的瓦片)。
Texel rate
是每秒可以处理的纹理贴图元素(纹素)的最大数量。它在一秒钟内以数百万纹素为单位进行测量
这是通过将总数乘以texture units
芯片的核心速度来计算的。
纹理映射单元:需要处理和过滤纹理。这项工作由与像素和顶点着色器单元一起工作的 TMU 完成。TMU
将纹理操作应用于像素是
重要性:纹素率越高,游戏渲染速度越快,可以流畅地显示要求苛刻的游戏。
示例:不是 nVidia 粉丝,但这里是 GTX 680 的规格,(对于嵌入式 GPU 找不到太多)
Model Geforce GTX 680
Memory 2048 MB
Core Speed 1006 MHz
Shader Speed 1006 MHz
Memory Speed 1502 MHz (6008 MHz effective)
Unified Shaders 1536
Texture Mapping Units 128
Render Output Units 32
Bandwidth 192256 MB/sec
Texel Rate 128768 Mtexels/sec
Pixel Rate 32192 Mpixels/sec