我正在写一个OpenGL ES 3.1程序,并且想知道我正在运行的设备(运行在Android 6上)的最大工作组大小。获取计算着色器的最大工作组大小?
对于PC查询GL_MAX_COMPUTE_WORK_GROUP_COUNT
和GL_MAX_COMPUTE_WORK_GROUP_SIZE
工作正常,但我似乎无法在Android,我得到OpenGL error: InvalidEnum
当我尝试像
OpenTK代码做了相同的:
int[] work_grp_cnt = new int[3];
GL.GetInteger(All.MaxComputeWorkGroupCount, work_grp_cnt);
同样的,原生Android API:
int[] work_grp_cnt = new int[3];
IntBuffer maxCount = IntBuffer.Allocate(3);
GLES20.GlGetIntegerv(GLES31.GlMaxComputeWorkGroupCount, maxCount);
maxCount.Get(work_grp_cnt);
(在这两种情况下,GLGetInteger都会产生相同的InvalidEnum错误) OpenGL ES 3.1有可能吗?
我正在使用索尼Xperia Z5
我已经添加了相当于Java我的功能,其同样的错误。另外,错误出现在OpenGL端,这让我认为我调用了错误的API,而不是像我们所说的那样,我的语法错了。 – sydd
这不一样的功能。 “i_”部分很重要。 –
谢谢,你说得对。我发布了工作代码作为另一个答案。 – sydd