我在绘制纹理时遇到了一些问题。情况如下:
我有带有 ati 硬件和专有 ati 驱动程序的 linux 盒子,它已经有两三年的历史了——因为 ati 抛弃了旧硬件。我有基于 opengl 的专用(主要)2D 引擎的自定义应用程序。(它是经过多年构建的,非常成熟,从来没有遇到过这样的问题)
当 vram(取自系统内存,在这种特殊情况下为 2GB)几乎达到最大纹理时,就会出现问题。当在场景中有一个四边形,它的纹理超过 2048x2048,它不会被绘制。当我对特定表面进行计时时,绘制时间最长的表面不是使用大纹理纹理的表面(大约需要 87 我们),而是在它之后绘制的下一个表面(大约需要 900 毫秒!)。正在绘制的场景并没有使用 vram 中的所有纹理,而仅使用了 8%。不幸的是,我什至无法释放它的一小部分。该应用程序通常在这种 vram 压力条件下工作,并且从未像这样表现过。
glGetError() 什么也不返回。所有其他纹理都正常绘制。