具有数据的纹理和没有数据的纹理是否消耗相同的内存量?

时间:2018-08-12 17:52:24

标签: webgl webgl2

在我的应用程序中,我创建纹理,渲染纹理并延迟从它们读取直到CPU绝对需要。

我想知道(而且我仍然不知道如何),因为我猜测并监视消耗的GPU内存是否可以通过向readPixels()的调用通过将数据传输到GPU来减轻GPU的内存消耗。中央处理器?还是在我破坏纹理之前仍会占用内存?

1 个答案:

答案 0 :(得分:1)

readPixels仅复制数据。它不会将其从GPU中删除。

不传递数据的纹理(传递null)与不传递数据的纹理占用相同的内存。浏览器只为您填充零。

纹理停止使用内存的唯一方法是使用gl.deleteTexture将其删除。您还需要删除对其的所有引用(将其与尚在使用的任何纹理单元解除绑定,并从任何帧缓冲区附件中删除它,或者删除其所附着的帧缓冲区)。