代码之家  ›  专栏  ›  技术社区  ›  Jeff Saremi

一个有数据的纹理和一个没有数据的纹理消耗相同的内存量吗?

  •  0
  • Jeff Saremi  · 技术社区  · 6 年前

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

    我想知道(但我仍然不知道如何知道),因为我猜和监视消耗的GPU内存会调用 readPixels() 通过向CPU传输数据来减少GPU的内存消耗?或者在我破坏纹理之前,记忆还会被占据吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   gman    6 年前

    readPixels 只是复制数据。它不会将其从GPU中移除。

    不传递数据的纹理 null )使用与不向其传递数据的纹理相同的内存量。浏览器只会为您填充零的纹理。

    纹理停止使用内存的唯一方法是使用 gl.deleteTexture . 您还需要移除对它的每个引用(将其从仍处于启用状态的任何纹理单位解除绑定,并将其从任何帧缓冲区附件中移除,或删除其附加到的帧缓冲区)。