我收到了错误
fatal error C9999: *** exception during compilation ***
每当我尝试重新编译使用Image api进行纹理写入的GLSL着色器时,例如
layout(binding = 0) coherent uniform image3D Voxels;
然而,初始编译工作正常。还有其他人遇到过这种情况吗?有解决方法吗?
答案 0 :(得分:2)
好的,我想出了一个解决方法。从本质上讲,我不得不让我的重新编译过程更具破坏性。
首先,(现在)需要从着色器程序中分离所有着色器(vert,frag,geom等)。
其次,在重新编译单个着色器时,(现在)需要删除并重新创建新的着色器ID
glDeleteShader(shader_id);
shader_id = glCreateShader(GL_FRAGMENT_SHADER);
然后您可以重新加载着色器源,之后您可以安全地重新附加,或者更确切地将新着色器附加到着色器程序,重新链接所有内容,并希望它一切正常。