Необработанное исключение в 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, которого больше не существует, и поэтому программа прерывается.

Другие вопросы по тегам