有数据的纹理和没有数据的纹理消耗相同数量的内存吗?
Does a texture with data and a texture with no data consume the same amount of memory?
在我的应用程序中,我创建纹理,渲染它们并延迟读取它们,直到 CPU 绝对需要为止。
我想知道(但我仍然不知道如何)鉴于我猜测并监控消耗的 GPU 内存,对 readPixels()
的调用是否会通过传输数据来减轻 GPU 的内存消耗CPU?或者在我破坏纹理之前,内存是否仍然被占用?
readPixels
只是复制数据。它不会将其从 GPU 中移除。
不传递数据的纹理(传递 null
)占用的内存量与不传递数据的纹理相同。浏览器只是为您用零填充纹理。
纹理停止使用内存的唯一方法是使用 gl.deleteTexture
将其删除。您还需要删除对它的所有引用(将它与它仍然存在的任何纹理单元解除绑定,并将它从任何帧缓冲区附件中删除或删除它所附加的帧缓冲区)。
在我的应用程序中,我创建纹理,渲染它们并延迟读取它们,直到 CPU 绝对需要为止。
我想知道(但我仍然不知道如何)鉴于我猜测并监控消耗的 GPU 内存,对 readPixels()
的调用是否会通过传输数据来减轻 GPU 的内存消耗CPU?或者在我破坏纹理之前,内存是否仍然被占用?
readPixels
只是复制数据。它不会将其从 GPU 中移除。
不传递数据的纹理(传递 null
)占用的内存量与不传递数据的纹理相同。浏览器只是为您用零填充纹理。
纹理停止使用内存的唯一方法是使用 gl.deleteTexture
将其删除。您还需要删除对它的所有引用(将它与它仍然存在的任何纹理单元解除绑定,并将它从任何帧缓冲区附件中删除或删除它所附加的帧缓冲区)。