OpenGL原子计数器NVIDIA驱动程序提供随机值

时间:2019-06-01 11:38:12

标签: c++ opengl nvidia

当使用支持OpenGL 4.4的集成图形(Intel HD 5500)时,我的原子计数器正确递增。

我正在使用一个简单的计算着色器,该着色器将增加一个计数器,并通过128次调用在所有调用完成后得到128作为值。

当移动到支持OpenGL 4.6的Nvidia卡(920m)时,即使我不调用着色器,这些计数器也会显示0或非常大的随机值,仅绑定缓冲区会导致显示非0的值

请注意,我使用memset将缓冲区重置为每帧0。

//creating the buffer
glGenBuffers(1, &m_RendererID);
glBindBuffer(GL_ATOMIC_COUNTER_BUFFERS, m_RendererID);
glBufferData(GL_ATOMIC_COUNTER_BUFFERS, sizeof(GLuint), GL_DYNAMIC_DRAW));

//binding (glUseProgram already called and BindingPoint = 3)

glBindBuffer(GL_ATOMIC_COUNTER_BUFFERS, m_RendererID);
glBindBufferBase(GL_ATOMIC_COUNTER_BUFFERS, BindingPoint, m_RendererID);

//shader code
layout(binding = 3, offset=0) uniform atomic_uint CC;

0 个答案:

没有答案