GPU内存每帧增加一次(泄漏)?

时间:2019-01-28 14:59:16

标签: python opengl memory-leaks gpu

我正在渲染一个图像,该图像通过使其成为正方形2D板(由2个三角形组成)的纹理来更新。但是,GPU内存似乎每帧都单调增加。

draw函数如下:

prog = gloo.Program(vertex, fragment, count=4)

def Draw(self, inImRGB):
    texture = inImRGB.copy().view(gloo.Texture2D)
    texture.interpolation = gl.GL_LINEAR
    CBackgroundImage._prog['texture'] = texture
    CBackgroundImage._prog.draw(gl.GL_TRIANGLE_STRIP)

对于每个新的可用图像,使用以下回调定期调用它:

from glumpy import app
window = app.Window(...)
@window.event
def on_draw():
    window.clear()
    bgImageObj.Draw(newImRGB)

有人知道为什么GPU内存不断累积吗?我应该以某种方式释放每个新帧的纹理,还是以其他方式填充它?如果可以,怎么办?

1 个答案:

答案 0 :(得分:1)

texture = inImRGB.copy().view(gloo.Texture2D)

创建所有新纹理;最终Phython GC会清理掉旧的东西,但是如果内存不短缺,那将不会发生。

在初始化期间创建纹理,然后重用