我正在使用 OpenGL 编写一个小游戏(通过 JOGL 在 Java 中,但我认为这并不重要),最近我收到了很多关于人们收到 OpenGL 错误“1285”的错误报告,这似乎表明“内存不足”。我在创建新纹理后检查时发现了这一点glGetError
,这让我感觉纹理内存快用完了。
然而,这让我有点吃惊。OpenGL不应该为我管理纹理内存,根据需要在GPU和进程内存之间交换纹理吗?当然,规范glTexImage2D
不包括任何“内存不足”错误作为任何可能的错误条件。
尽管有规范,这是否是 OpenGL 驱动程序普遍接受的做法?尽管有规范,只有一些驱动程序这样做吗?如果我在之后发现此错误,是否需要注意删除一段时间未使用的纹理glTexImage2D
?或者我可能在这里看到了 OpenGL 的错误报告并没有很简洁地传达给我的完全不同的东西?
编辑:有关更多信息,不幸的是,我无法自己调试问题,因为我没有得到它。从人们发给我的报告中阅读,绝大多数受此困扰的人似乎都在使用英特尔卡,但我也发现了一些 nVidia 卡(甚至是 680)。