zol*_*i2k 12 graphics gpu opengl-es performancecounter
许多嵌入式/移动GPU提供对性能寄存器的访问,称为Pixel Write Speed和Texel Write speed.你能解释一下如何从实际的GPU硬件角度解释和定义这些术语吗?
Ren*_*nov 11
我认为像素和纹素之间的区别对你来说非常清楚.无论如何,只是为了使这个答案更"普遍":
纹理由纹素数组表示,就像图片由像素数组表示一样.在对3D表面进行纹理化(称为纹理贴图的过程)时,渲染器将纹理像素映射到输出图片中的适当像素.
顺便说一句,更常见的是使用填充率而不是写入速度,您可以轻松找到所有必需的信息,因为这个术语很老并且被广泛使用.
回答你的问题
所有填充率数字(无论使用何种定义)均以Mpixels/sec或Mtexels/sec表示.
那么填充率背后的原始想法是写入帧缓冲区的完成像素数.这符合理论峰填充率的定义.因此,在过去的好日子里,用Mpixels表达这个数字是有意义的.
然而,第二代3D加速器增加了一项新功能.此功能允许您渲染到屏幕外表面,并将其用作下一帧中的纹理.因此写入缓冲区的值不再是屏幕像素,它们可能是纹理的纹素.这个过程允许几个很酷的特效,想象渲染一个房间,现在你把这个房间的图片存储为纹理.现在你没有显示房间的这张照片,但是你将图片用作镜子的纹理甚至是反射贴图.
使用MTexels的另一个原因是游戏开始使用多层多纹理效果,这意味着屏幕上的像素由各种子像素构成,最终被混合在一起形成最终像素.因此,根据这些子结果表达填充率更有意义,您可以将它们称为纹素.
更新
纹理填充率=(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
Run Code Online (Sandbox Code Playgroud)