glbadcontext的可能原因

问题描述 投票:1回答:1

glbadcontext的可能原因是什么?

它可以与OpenGL版本,GPU,mesa库(在Linux中),内存损坏或其他相关吗?

我对OpenGL没有经验,我想对该错误有一个清晰的了解。

opengl runtime-error
1个回答
1
投票

在OpenGL中没有“坏上下文”错误。出现GL_CONTEXT_LOST错误。这是什么错误?

可编程性的后果之一是人们可以使用可编程硬件编写bad程序。因此,随着GPU变得更具可编程性,它们现在变得容易受到GPU程序执行某些愚蠢操作时出现的问题的影响。在现代操作系统中,当CPU进程执行错误操作时,操作系统将终止该进程。在现代操作系统中,当GPU“进程”开始执行错误的操作(不允许访问内存,无限循环,其他损坏)时,操作系统将重置GPU。

不同之处在于,GPU重置取决于它的原因和特定的硬件,通常会影响使用GPU的all程序,而不仅仅是影响了坏事的程序。 OpenGL通过声明OpenGL上下文已丢失来报告这种情况。

函数glGetGraphicsResetStatus可用于查询负责GPU重置的一方。但这只是一个半量值,因为它告诉您的是是您的上下文还是其他人导致了重置。并且不能保证它会告诉您that,因为glGetGraphicsResetStatus可以返回GL_UNKNOWN_CONTEXT_RESET,这表示无法确定是谁出了错。

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

© www.soinside.com 2019 - 2024. All rights reserved.