When I add a variable declaration:
layout(size4x32) coherent uniform image2D img2;
(which is btw taken directly from GL_EXT_shader_image_load_store spec.),
I keep getting something like this in the shader compilation log:
0(40) : error C0000: syntax error, unexpected identifier at token “coherent”
0(40) : error C0501: type name expected at token “coherent”
0(40) : error C1315: can’t apply layout(size4x32) to non-image
0(40) : error C7537: OpenGL does not allow ‘uniform’ after a type specifier
Am I doing something wrong? Is there any magic involved in using GL_EXT_shader_image_load_store besides starting the shader with:
#extension GL_EXT_shader_image_load_store : enable
I think that I really need the variables to be declared as coherent, because without it I keep getting unpredicted results.
BTW this occurs on:
Just started poring to NV_shader_buffer_store by first adding #extension GL_NV_gpu_shader5 : enable and it seemed to help. But adding
layout(size4x32) const uniform image2D imageVariable;
0(22) : error C7522: OpenGL requires constants to be initialized .
Nevertheless I keep getting strange results so the bug must be somewhere on my side or a port to NV_shader_buffer_store is still in question.
I still consider adding #extension GL_NV_gpu_shader5 : enable should not be required.