Необработанное исключение в nvoglv32.dll - вызов imageStore в цикле for
Я пытаюсь заполнить image3D, используя цикл for в моем вычислительном шейдере.
Следующие три строки кода допустимы вне цикла for, поскольку программа будет работать и давать ожидаемые результаты:
position = ivec3(gl_GlobalInvocationID.xyz);
colour = vec4(0.5, 0.0, 0.0, 1.0);
imageStore(visualTexture, position, colour); //visualTexture being an empty image3D
//fed into the shader
Однако при помещении в цикл необработанное исключение в nvoglv32.dll
выброшен и запрошен фатальный выход из программы. Первоначально я думал, что это может быть связано с тем, что я пытался писать в одну и ту же позицию несколько раз, но, конечно, это не относится к этому коду, потому что глобальный идентификатор вызова будет уникальным для каждой итерации, верно?
1 ответ
Я чувствую себя очень глупо. Причина, по которой это не сработало, заключалась в том, что цикл for был похож на это:
for (int j = 0; j < i; i++)
Я был переменной в предыдущем цикле for, которого больше не существует, и поэтому программа прерывается.