OpenGL上下文创建期间未记录的错误

Posted

技术标签:

【中文标题】OpenGL上下文创建期间未记录的错误【英文标题】:Undocumented error during OpenGL context creation 【发布时间】:2014-01-31 04:54:48 【问题描述】:

我正在使用 wglCreateContextAttribsARB() 函数创建具有以下参数的 OGL 上下文:

const int contextAttrib[] = 
    WGL_CONTEXT_MAJOR_VERSION_ARB, 4,
    WGL_CONTEXT_MINOR_VERSION_ARB, 2,
    WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB,
#ifdef _DEBUG
    WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB | WGL_CONTEXT_DEBUG_BIT_ARB,
#else
    WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB,
#endif
    0
;

mContext = wglCreateContextAttribsARB_local(mhDC, shareLists, contextAttrib);

不幸的是,当我尝试创建与之前成功创建的某些上下文(shareLists 参数)共享数据的第二个上下文时,我收到一个错误 - 0xc00710dd 或 3221688541(由 GetLastError() 返回)。谷歌搜索它只给出了一个结果:http://software.intel.com/en-us/forums/topic/303629我在 Windows 8.1 上使用 GeForce 680 GTX 和最新的驱动程序,所以这个线程对我们来说并不多。

一个奇怪的事情是重现此错误的方式。当我创建上下文 A 和上下文 B 与 A 共享数据,然后 C 与 A 共享数据时,仅当 B 在创建 C 之前呈现某些内容时才会发生错误(失败)。

有人知道会发生什么吗?

【问题讨论】:

我知道这很旧,但是我遇到了同样的错误。你知道是什么原因吗? 【参考方案1】:

这个错误可能是一个HRESULT / SCODE 这是一个复合值。每个部分(严重性、设施、代码)都可以通过宏访问:

HRESULT_SEVERITY(0xC00710DD) = 0xC0000000 //ERROR_SEVERITY_ERROR  
HRESULT_FACILITY(0xC00710DD) = 7          //FACILITY_WIN32
HRESULT_CODE(0xC00710DD)     = 4317       //ERROR_INVALID_OPERATION

【讨论】:

谢谢,有道理。

以上是关于OpenGL上下文创建期间未记录的错误的主要内容,如果未能解决你的问题,请参考以下文章

QXcbIntegration:无法创建平台 OpenGL 上下文,GLX 和 EGL 均未启用

Opengl 未定义行为

带有 QT 错误的 OpenGL:断言:“QOpenGLFunctions::isInitialized(d_ptr)”。无法创建 OpenGL 上下文

有效的 OpenGL 上下文

OpenGL 渲染上下文-context

wgext - 扩展未安装在 OpenGL 上下文中