【发布时间】:2015-02-07 00:21:12
【问题描述】:
我有一个可以测试无绑定纹理的工作原型。我有一台可以平移超过 6 场纹理的相机,而我只有 2 场 VRAM。我有一个内部截锥体,用于获取视口中的对象列表以进行渲染,还有一个外部截锥体用于排队(使驻留)即将渲染的纹理,所有其他纹理,如果它们是驻留的, 使用函数 glMakeTextureHandleNonResident 设置为非常驻。
程序运行,但 gpu 的 VRAM 表现得好像它有一个 GC 步骤,它在随机时间间隔清除 VRAM。当它执行此操作时,我的渲染完全冻结,但随后跳到正确的帧,最终恢复到 60 FPS。我很好奇 glMakeTextureHandleNonResident 实际上并没有在“何时”调用纹理时将纹理从 VRAM 中拉出。有谁知道 GPU 对该调用做了什么?
GPU:英伟达 750GT M
【问题讨论】:
标签: c++ opengl textures opengl-4