假设我已经加载了一两个纹理,可能还有一些着色器,一个VAO,一个VBO,然后我运行该程序。
假设程序遇到某种运行时错误并在所有缓冲区对象和纹理都被删除之前终止。
在重新启动计算机之前,它们是否卡在视频内存中?
我知道java会自行清理,但我不认为opengl会这样做,所以我很好奇会发生什么。
答案 0 :(得分:2)
在重新启动计算机之前,它们是否卡在视频内存中?
没有。图形卡由图形驱动程序管理,图形驱动程序通知或获知处理的进程已终止。与进程关联但未被其他进程使用的所有资源都将被释放。
在某些操作系统上,可以在进程之间共享OpenGL上下文。如果其中一个进程终止,那些当然会保持不变。