On win7 64, gtx760 with driver 390.77, on gtx750ti with driver 391.01, following compute shader:
#version 430
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
uniform float _M, _m;
layout(std430, binding = 15) writeonly buffer Buf
{
float _value;
};
void main()
{
float ratio = _M / _m;
for (int i = 1; i < 2; ++i)
{
float p = float(i) * .5;
_value = pow(ratio, p);
}
}
Run by code:
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 15, mBuf.Id);
glBufferData(GL_SHADER_STORAGE_BUFFER, sizeof(float), nullptr, GL_DYNAMIC_DRAW);
glUseProgram(mProgram.Id);
glUniform1f(mm, 1);
glUniform1f(mM, 2);
glDispatchCompute(1, 1, 1);
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 15, mBuf.Id);
float value = 0;
glMemoryBarrier(GL_ALL_BARRIER_BITS);
glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, 0, sizeof(float), &value);
If run under debug, gives crash in nvoglv64.dll on
glGetProgramiv(Id, GL_LINK_STATUS, &link);
Debug “run without debug” and release builds give exception in caption from
glGetProgramInfoLog
All correct on Intel hd4600, ati hd8750.
Related to