gpt4 book ai didi

mobile - TMU 和 openGL 的 GL_TEXTUREn 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 02:24:45 25 4
gpt4 key购买 nike

我不太明白有什么区别。我知道 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com