Last time I compared opengl3 with opengl4, I think I noted than opengl4 was simpler than opengl3 for the good reasons. Regarding opengl ES 2, I though about it like it was opengl as it was supposed to be (for modern hardware and simple). Now saying that opengl ES3 will feature many elements from opengl3 scares me...
Based on OpenGL 3.2+ rather than 3.3, i wonder if this answers why beyond3D people are saying that DX10 style geometry shaders are not part of the spec (added to OpenGL in 3.3 i believe)?
Why would they cut that feature out? over and above more complex shader operations, geometry shaders were one of the key functionality advancements that DX10 added over the old 9.x series......
They were actually added as part of GL3.2. I'm guessing the reason they are being left out is they require a significant amount of hardware transistors for a feature that would rarely be used in a mobile context. With ES hardware you have to balance the cost to make the hardware and the power required to run it with any new features you add, and geometry shaders probably just didn't end up making sense.
If they are left out, that will make ES3.0 a good target for Mesa to shoot for between GL3.1 and 3.2. They might be able to complete it for the January 2013 release and aim for more complete 3.2 support in the July 2013 release.
Last edited by smitty3268; 05-27-2012 at 07:08 AM.
What we really need in OpenGL is standardizations of some innovations from nVidia such as bindless graphics/textures.
The most important "feature" of SM4(Direct3D 10 and OpenGL 3.x) was the architectural redesign to better utilize modern GPU architectures. I have hardly ever seen geometry shaders in use, so I guess they just take up too much space to implement in mobile hardware.
You can use these two links to track how fast this work is being done by comparing the time of posting at Phoronix, vs what it currently says at freedesktop.org.
Being as GLES3 will be in large part based upon GL 3.2, it won't be too big of a bridge to cross. Almost the entirety of OpenGL 3-3.3 is implemented. The one that's going to stick around as a sore spot for a long time will be GL 4.3.
What is the difference between OpenGL and OpenGL ES?
I know that ES are for Embedded Systems.
But what really is the difference besides the name?
OpenGL ES is a much smaller API in terms of entry points (functions) and functionality. OpenGL ES 2.0 is based on OpenGL 2.1 but with all legacy functions removed (i.e. no immediate mode rendering, no display lists, no fixed-function functionality.) OpenGL ES 3.0 will bring newer functionality equivalent to OpenGL 3.x (FBOs by default, more flexible shaders), with the possible exception of geometry shaders (which are much less useful than they sound, esp. in the mobile space.)
Apart from these differences, there are OpenGL ES versions for devices without floating-point hardware and for devices with increased stability requirements.
In short, OpenGL ES is closer to what OpenGL could have been if it wasn't burdened by backwards compatibility.