GPU 驱动程序错误处理

GPU driver errors handling

本文关键字:处理 错误 驱动程序 GPU      更新时间:2023-10-16

我正在编写基于 OpenGL 的渲染应用程序,我想知道是否有办法拦截 GPU 驱动程序发送的错误?

现在我得到带有错误信息的MB,然后应用程序刚刚关闭。我并不是说这不好;)但我想根据应用程序中发生的事情进行一些关闭操作。

我正在使用 Nvidia 和 ATI GPU 卡,根据 GPU 卡的性能和型号,我遇到了各种错误。

我也有一个内存管理问题。我正在使用 VBO-s 进行渲染,当 GPU 单元上没有足够的内存时,GPU 驱动程序会将 VBO 数据保存在 RAM 上。这是意料之中的,但似乎没有 RAM 过载机制,当 GPU 驱动程序尝试为缓冲区分配比可用内存更多的内存时,我的计算机挂起。

更新:

内存管理:我认为是挂起的东西实际上是在分配所有可用 RAM 后,我的 Windows 操作系统在 HDD 上使用虚拟内存时性能急剧下降。在我的操作系统中将可用内存设置为 0 后GL_OUT_OF_MEMORY在调用glGetError(void);后重新调整。

错误处理:很抱歉,我可能不够具体。我编写的渲染代码的性能似乎高度依赖于硬件,这是意料之中的。我的问题是我没有收到来自 OpenGL 本身的任何错误,而是来自显卡驱动程序 durnig 渲染过程的任何错误。我希望拦截这些驱动程序错误以相应地处理它们。例如:http://nvidia.custhelp.com/app/answers/detail/a_id/3008/kw/your%20hardware%20configuration

@Simon我知道glGetError(void)函数,并且我的代码中都有它,但是当驱动程序发送其MB时没有设置错误标志。

@Colonel Thirty Two & @Andon M. Coleman感谢您的建议,我也不喜欢glGetError垃圾邮件,而且我不知道有这样一种处理OpenGL错误的可靠方法;)

您可以在任何操作后调用此函数以查看是否存在错误

GLenum glGetError(void);