是否可以将显示列表数据存储在显卡内存中?我想只使用视频内存,如视频缓冲对象(VBO)来存储DisplayList。但当我尝试它时,它总是使用主存而不是显存。我在nVidia geForce 8600GTS和GTX260上进行了测试。
发布于 2012-06-25 16:30:05
显示列表是一个非常古老的功能,可以追溯到OpenGL-1.0。它们很久以前就被弃用了。无论如何,出于兼容性的原因,您仍然可以使用它们。
OpenGL的工作方式,防止显示列表仅保存在图形处理器内存中。图形服务器( OpenGL称之为图形服务器)是一个纯粹抽象的东西,规范保证,您放在显示列表中的内容始终可用。然而,在现代GPU中,只有有限数量的内存,因此可以根据需要交换有效负载数据。
实际上,GPU内存是系统RAM中数据的缓存(与系统RAM作为存储缓存的方式相同)。
更重要的是,现代GPU可能会崩溃,驱动程序会执行完全重置,给用户的印象是一切正常。但是在重置之后,GPU内存中的所有数据都必须重新初始化。
因此,OpenGL有必要在内存中保留每个负载数据的副本,以支持平滑运行。
因此,您的数据显示为消耗系统RAM也是非常正常的。然而,显示列表很可能也被缓存在GPU内存中。
发布于 2012-06-25 16:14:16
显示列表已弃用。您可以使用VBO和顶点索引来使用图形内存,并使用glDrawElements绘制它。
https://stackoverflow.com/questions/11185584
复制相似问题