Hi
I have a newbie question
What are the main differencies between OpenCl and OpenGl Es ?
In which case do you use the first or the second ?
May you explain me shortly ?
Thanks & regards,
The two are really very similar in capability, although not identical. In general OpenCL has more "features", the main ones being:
Features are not always a good thing - pointers are hard to optimize for, for example, and some things which OpenGL ES compute does "for free" from the application point of view have to be explicitly coded and controlled by the application for OpenCL. Chris hit on the main difference though - OpenGL ES compute "just works" if you are trying to fit into a graphics application (you can interoperate OpenCL with OpenGL ES, but it's less transparent), and OpenCL means you're not restricted by OpenGL ES if you only want to do the compute part.
HTH, Pete
To help lessen confusion, Chris mentioned the Graphics aspect of OpenGL ES, whereas Pete mentioned the fact that OpeGL ES also supports Compute functionality as of version 3.1.
OpenCL is a much more comprehensive Compute API, but does not do Graphics.
In summary, you use OpenGL ES for rendering graphics, and OpenCL to do a lot of Compute workloads, however with GLES 3.1, you can now do some compute workloads within the GLES API, although it is not as extensive.