OpenGL glBufferStorage 崩溃
OpenGL glBufferStorage crashes
每当我调用 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 下,通过 VS2015 上的 NugeT 安装了 openGl(nupengl.core 包)。然后我将整个项目文件夹粘贴到我的笔记本(GeForce 740M / i7),删除openGl nuget包并重新安装它。
我该如何继续调查问题所在?这是逻辑错误还是gpu驱动错误?
我能做到。
如前所述,我将我的项目从台式机移到了笔记本电脑上。我的笔记本电脑对 OpenGL 的支持比台式机更新,但我的笔记本电脑使用的是 CPU 显卡(英特尔高清显卡)而不是专用 GPU GeForce 740M。
这样,我的 OpenGL 程序在不支持某些较新的 OpenGL 功能(例如 GL_SHADER_STORAGE_BUFFER 目标的设备上执行,这就是它崩溃的原因。
每当我调用 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 下,通过 VS2015 上的 NugeT 安装了 openGl(nupengl.core 包)。然后我将整个项目文件夹粘贴到我的笔记本(GeForce 740M / i7),删除openGl nuget包并重新安装它。
我该如何继续调查问题所在?这是逻辑错误还是gpu驱动错误?
我能做到。
如前所述,我将我的项目从台式机移到了笔记本电脑上。我的笔记本电脑对 OpenGL 的支持比台式机更新,但我的笔记本电脑使用的是 CPU 显卡(英特尔高清显卡)而不是专用 GPU GeForce 740M。
这样,我的 OpenGL 程序在不支持某些较新的 OpenGL 功能(例如 GL_SHADER_STORAGE_BUFFER 目标的设备上执行,这就是它崩溃的原因。