- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不太明白有什么区别。我知道 TMU 是 GPU 上的纹理映射单元,而在 opengl 中,我们可以有很多纹理单元。我以前认为它们是相同的,如果我有 n 个 TMU,那么我可以有 n 个 GL_TEXTURE 来使用,但我发现这未必是真的。最近在做一个安卓游戏,目标平台是使用Mali 400MP GPU。根据文档,它只有一个TMU,我以为我一次只能使用一个纹理。但令人惊讶的是,我可以使用至少 4 个纹理没有问题。这是为什么?硬件或驱动程序级别是否正在为我自动交换不同的纹理进/出?如果是这样,是否会导致大量缓存未命中?
最佳答案
我不是终极硬件架构专家,尤其是 Mali。但根据我的理解,我还是会试一试。
TMU 是一个用于纹理采样的硬件单元。它不会永久分配给 OpenGL 纹理单元。每当着色器执行纹理采样操作时,我都希望将此特定操作分配给其中一个 TMU。然后 TMU 执行请求的采样,将结果返回给着色器,并可用于下一个采样操作。
所以TMU的数量和支持的OpenGL纹理单元的数量没有关系。可支持的OpenGL纹理单元数量由硬件的状态跟踪部分决定。
TMU 的数量会影响性能。可用的 TMU 越多,在给定时间内可以执行的纹理采样操作就越多。因此,如果您在着色器中使用大量纹理采样,您的代码将受益于拥有更多 TMU。无论您是从同一纹理还是从许多不同的纹理中多次采样都没有关系。
关于mobile - TMU 和 openGL 的 GL_TEXTUREn 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23325783/
我不太明白有什么区别。我知道 TMU 是 GPU 上的纹理映射单元,而在 opengl 中,我们可以有很多纹理单元。我以前认为它们是相同的,如果我有 n 个 TMU,那么我可以有 n 个 GL_TEX
我是一名优秀的程序员,十分优秀!