Hello! I'm trying to query the maximum number of work groups that may be dispatched to a compute shader in OpenGL 4.3 Core Profile.
In order to do so, the docs say we should use the indexed versions of glGet, where indices 0, 1 and 2 correspond to the X, Y and Z dimensions, respectively.
So, for instance, to query the maximum number of work groups in the Y dimension, I'm using the following code:
int result = glGetInteger(GL_MAX_COMPUTE_WORK_GROUP_SIZE, 1);
However, it throws the following exception:
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.lwjgl.opengl.GL30.nglGetIntegeri_v(IIJJ)V
at org.lwjgl.opengl.GL30.nglGetIntegeri_v(Native Method)
at org.lwjgl.opengl.GL30.glGetInteger(GL30.java:1400)
... 5 more
I've also tried this alternative:
glGetInteger(GL_MAX_COMPUTE_WORK_GROUP_SIZE, 1, tempIntBuffer);
But it also fails with the same exception. The only difference being the source line that is shown on the stack trace:
GL30.java:1390.
Additional details: LWJGL 2.8.5, 64-bit Windows 7, Nvidia GeForce GTX 560 with driver version 310.70
I've found a temporary workaround that works perfectly in my machine and returns the correct results:
int result = org.lwjgl.opengl.ARBViewportArray.glGetIntegerIndexedEXT(GL_MAX_COMPUTE_WORK_GROUP_SIZE, 1);
// or:
org.lwjgl.opengl.ARBViewportArray.glGetIntegerIndexedEXT(GL_MAX_COMPUTE_WORK_GROUP_SIZE, 1, tempIntBuffer);
I would like to confirm if this is a bug or if I'm missing something. Other than that LWJGL works flawlessly for me and simply rocks!
Unrelated note: if anyone is interested
, there are videos of some of my LWJGL demos on my youtube channel.
Here is one about shadow mapping:
www.youtube.com/watch?v=8yb_otvuz6YAnd another one about hardware tessellation:
www.youtube.com/watch?v=LT1JE4jjXXA