Well, I really got this one wrong. Previously I had (mistakenly) claimed that OpenGL compute shader, OpenGL ES compute shader etc. don’t really have specified minimums for some things but I got that completely wrong. I guess I need to be more careful while reading these specs as the required minimums are not necessarily located at the same place where they are being explained. Some of the OpenCL claims still stand though OpenCL’s relaxed specs are a bit more understandable given that it has to run on more hardware than others.
Here are the minimums:
- OpenGL 4.3: 1024 work-items in a group, and 32kB of local memory
- OpenGL ES 3.1: 128 work-items in a group, and 16kB of local memory (updated from 32kB, Khronos “fixed” the spec)
- OpenCL 1.2: 1 work-item in a group, 32kB of local memory
- OpenCL 1.2 embedded: 1 work-item in a group, 1kB of local memory
- DirectCompute 11 (for reference): 1024 work-items in a group, 32kB of local memory
Thanks to Graham Sellers and Daniel Koch on twitter for pointing out the error. I guess I got schooled today.