【发布时间】:2016-08-17 19:35:16
【问题描述】:
我正在编写一个 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
【问题讨论】:
标签: android opengl-es compute-shader