给定一个计算着色器,我将每个维度的局部大小设置为值 x、y 和 z,有什么方法可以让我从 C++ 代码访问该信息吗? IE,
//Pseudo Code c++
int size[3]
x = get local sizes from linked compute shader
print(x);
//GLSL Code
layout (local_size_x = a number, local_size_y = a number, local_size_z = a number) in;
经过四处寻找,我在 Khronos.org 的页面上发现了以下内容:glGetProgramiv
,在这里找到:
https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetProgramiv.xhtml
GL_COMPUTE_WORK_GROUP_SIZE
params 返回一个由三个整数组成的数组,其中包含由其输入布局限定符指定的计算程序的本地工作组大小。 program 必须是先前已成功链接的程序对象的名称,并且包含计算着色器阶段的二进制文件。
这使得我需要的线
glGetProgramiv(ComputeShaderID, GL_COMPUTE_WORK_GROUP_SIZE, localWorkGroupSize);
where localWorkGroupSize
是一个由 3 个整数组成的数组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)