此问题在此处已有答案:
How can I access the size of a Compute Shader's local work group from the CPU?(1个答案)
7个月前关闭。
OpenGL计算着色器使用local_size行声明其预期的工作组大小,如
layout (local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
稍后,执行着色器的C++程序将调用glDispatchCompute
glDispatchCompute(numWorkItems / workGroupSize, 1, 1);
其中workGroupSize应该正好是128,否则会发生不好的事情。这意味着修改着色器源代码也需要修改C++。
问题是,在编译着色器并将其链接到glProgram之后,是否有方法查询着色器中声明的值。当然,我知道在调用glAttachShader(programID, shaderID);
函数时使用的GLuint值。
1条答案
按热度按时间hgncfbus1#
(https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glGetProgram.xhtml)(英文)