Opengl 调用GLDrawerElementsInstanced时出现分段错误

Opengl 调用GLDrawerElementsInstanced时出现分段错误,opengl,opengl-3,Opengl,Opengl 3,我发现将glpaureElements更改为glpaureElementInstanced会在其他有效程序中导致segfault。编译没有问题。gdb说GLDRAILEMENTINSTANCED就是SEGFULTS。有人能猜出问题吗 在x86_64 GNU/Linux上运行 CMakeLists.txt的一部分: cmake_minimum_required (VERSION 2.6) project (sph) find_package(OpenGL REQUIRED) include_d

我发现将glpaureElements更改为glpaureElementInstanced会在其他有效程序中导致segfault。编译没有问题。gdb说GLDRAILEMENTINSTANCED就是SEGFULTS。有人能猜出问题吗

在x86_64 GNU/Linux上运行

CMakeLists.txt的一部分:

cmake_minimum_required (VERSION 2.6)
project (sph)

find_package(OpenGL REQUIRED)

include_directories(
    /usr/nvidia-current
.
)

set(ALL_LIBS
    ${OPENGL_LIBRARY}
    glfw
    GLEW
)

add_definitions(
    -D_CRT_SECURE_NO_WARNINGS
)

target_link_libraries(sph
    ${ALL_LIBS}
)
断层位置:

glDrawElementsInstanced(
            GL_TRIANGLES,
            indices.size(),
            GL_UNSIGNED_SHORT,
            (void *)0,
            2
        );
  • 您是否确保至少有一个可用的OpenGL 3.1上下文
  • 通过GLEW加载后,您是否检查了
    GLDrawerElementInstanced
    是否为NULL

  • 我认为这与你的构建系统无关。设置数组和执行调用的代码可能更有趣;这是对代码的唯一更改,如果我的理解是正确的,GLDrawerElementsInstanced的效果与GLDrawerElements相同,只是执行了多次。GLDrawerElementsInstanced是否有一些与设置数组有关的地方我遗漏了?这正是问题所在。GLPAYLEMENTINSTANCED为空。谢谢你的帮助!!