我正在寫一個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