OpenGL的内存模型非常抽象。在包括2.1在内的版本中,有两种类型的内存:快速的“服务器”内存和慢速的“客户端”内存。但是没有任何可以查询的限制。当OpenGL实现耗尽“服务器”(= GPU)内存时,它可能会开始交换或仅报告“内存不足”错误。
OpenGL-3放弃了两种不同类型的内存(大多数情况下,OpenGL-4完成了该工作)。只是“内存”,其限制是任意的,并取决于程序在其上运行的OpenGL实现(= GPU +驱动程序)。所有OpenGL实现都完美地交换了一段时间不使用的纹理。因此,遇到内存不足情况的唯一情况是尝试创建非常大的纹理。实际上,最新的GPU能够根据需要交换部分纹理。事情会变慢,但是会继续工作。
显然,程序可以分配多少纹理内存是有限制的,但是由什么决定该限制呢?
系统的OpenGL实现的详细信息,并取决于该系统中安装的内存量。
| 归档时间: |
|
| 查看次数: |
474 次 |
| 最近记录: |