将空纹理绑定到图像单元会产生段错误

Binding an empty texture to image unit produces segfault

我想通过计算着色器绘制纹理。为此,我试图将纹理绑定到图像单元:

    glBindImageTexture(0, texture, 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_RGBA32F);

但是当我 运行 代码时它会产生段错误。 这就是我创建空纹理的方式:

unsigned int texture;
glGenTextures(1, &texture);

glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texture);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, width, height, 0, GL_RGBA, GL_FLOAT, nullptr);

glBindTexture(GL_TEXTURE_2D, 0);

我将以下教程用于计算着色器:https://antongerdelan.net/opengl/compute.html

根据 https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glBindImageTexture.xhtml glBindImageTexture仅适用于大于或等于 4.2 的 GL 版本。更新我的项目的 GL 版本后,现在每个人都可以正常工作了。