使用图像 API 重新编译着色器的致命错误



我收到错误

fatal error C9999: *** exception during compilation ***

例如,每当我尝试重新编译使用图像 api 进行纹理写入的 GLSL 着色器时

layout(binding = 0) coherent uniform image3D Voxels;

但是,初始编译工作正常。有没有其他人遇到过这种情况,是否有解决方法?

好的,我想出了一个解决方法。 从本质上讲,我不得不使我的重新编译过程更具破坏性。

首先,(

现在)有必要将所有着色器(垂直,碎片,几何等)从着色器程序中分离出来。

其次,在重新编译单个着色器时,(现在)需要删除并重新创建新的着色器 ID

glDeleteShader(shader_id);
shader_id = glCreateShader(GL_FRAGMENT_SHADER);
然后,您可以重新加载着色器

源,之后您可以安全地重新附加,或者更确切地说,将新的着色器附加到着色器程序,重新链接所有内容,希望一切正常。

相关内容

  • 没有找到相关文章