Opengl 可能造成这种情况的原因

Opengl 可能造成这种情况的原因,opengl,runtime-error,Opengl,Runtime Error,GLBADDCONTEXT的可能原因是什么 它是否与OpenGL版本、GPU、mesa库(linux中)、内存损坏或其他相关 我对OpenGL没有经验,我想对这个错误有一个清晰的认识。OpenGL中没有“坏上下文”错误。有GL\u CONTEXT\u LOST错误。这个错误是关于什么的 可编程性的后果之一是人们可以用可编程硬件编写糟糕的程序。因此,随着GPU变得更加可编程,当GPU程序做了一些愚蠢的事情时,它们现在变得容易出现问题。在现代操作系统中,当CPU进程出错时,操作系统会终止进程。在现代

GLBADDCONTEXT的可能原因是什么

它是否与OpenGL版本、GPU、mesa库(linux中)、内存损坏或其他相关

我对OpenGL没有经验,我想对这个错误有一个清晰的认识。

OpenGL中没有“坏上下文”错误。有
GL\u CONTEXT\u LOST
错误。这个错误是关于什么的

可编程性的后果之一是人们可以用可编程硬件编写糟糕的程序。因此,随着GPU变得更加可编程,当GPU程序做了一些愚蠢的事情时,它们现在变得容易出现问题。在现代操作系统中,当CPU进程出错时,操作系统会终止进程。在现代操作系统中,当GPU“进程”开始做错误的事情(不允许访问内存、无限循环、其他中断)时,操作系统会重置GPU

不同之处在于,GPU重置(取决于重置原因和特定硬件)通常会影响使用GPU的所有程序,而不仅仅是那些做了坏事的程序。OpenGL通过声明OpenGL上下文已丢失来报告此类场景

函数
glGetGraphicsResetStatus
可用于查询负责GPU重置的一方。但即使是这样,也只是半个衡量标准,因为它只告诉你是你的环境还是其他人的环境导致了重置。而且也不能保证它会告诉您,因为
glGetGraphicsResetStatus
可以返回
GL\u UNKNOWN\u CONTEXT\u RESET
,这表示无法确定谁出了错


最终,GPU重置可能出于多种原因。除了确保您的代码不会执行导致错误的操作外,您所能做的就是接受错误的发生,并在错误发生时处理错误。

GPU重置的具体操作是什么?停电?内存损坏?怎么处理呢?@ParsaMousavi:信息添加到帖子中。