Память GPU увеличивается с каждым кадром (утечка)? - PullRequest
0 голосов
/ 28 января 2019

Я рендеринг изображения, которое обновляется каждый кадр, делая его текстурой квадратной 2D-пластины (состоящей из 2 треугольников).Однако память графического процессора, похоже, монотонно увеличивается с каждым кадром.

Функция рисования выглядит следующим образом:

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 голосов
/ 28 января 2019
texture = inImRGB.copy().view(gloo.Texture2D)

Создает и все новые текстуры;в конечном итоге Phython GC очистит старые данные, но этого не произойдет, если не будет недостатка памяти.

Создайте текстуру во время инициализации, а затем повторно используйте .

...