OpenGL glBufferStorage crashes

OpenGL glBufferStorage crashes

本文关键字:crashes glBufferStorage OpenGL      更新时间:2023-10-16

每当我调用glBufferStorage(...)时,随后的glBindBuffer(..)总是崩溃。前任:

    glBindBuffer(GL_SHADER_STORAGE_BUFFER, 1);
    glBufferStorage(GL_SHADER_STORAGE_BUFFER, sizeof(unsigned int) * 100, NULL, GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT | GL_MAP_READ_BIT );
    glBindBuffer(GL_SHADER_STORAGE_BUFFER, 2); //  <- CRASH HERE!

如果我删除 glBufferStorage(...) 调用,后续的 glBindBuffer 调用不会崩溃!

这段代码在我的桌面上在GTX650 Ti和PhenonII x6下正常工作,openGl通过VS2015(nupengl.core包)上的NugeT安装。然后我将整个项目文件夹粘贴到我的笔记本(GeForce 740M/i7)中,删除了openGl nuget包并重新安装了它。

我怎样才能继续调查出了什么问题?这是逻辑错误还是 GPU 驱动程序错误?

我可以做到。

如前所述,我将项目从台式机转移到笔记本电脑。我的笔记本电脑具有比台式机更新的OpenGL支持,但我的笔记本电脑使用的是CPU显卡(英特尔高清显卡)而不是专用的GPU GeForce 740M。

这样,我的 OpenGL 程序在不支持某些较新的 OpenGL 功能(如GL_SHADER_STORAGE_BUFFER目标)的设备上执行,这就是它崩溃的原因。