Today, day one of Game Developers Conference 2014, the Khronos Group has officially released the 3.1 specification for OpenGL ES. The main new feature, brought over from OpenGL 4, is the addition of compute shaders. This opens GPGPU functionality to mobile and embedded devices for applications developed in OpenGL ES, especially if the developer does not want to add OpenCL.
The update is backward-compatible with OpenGL ES 2.0 and 3.0 applications, allowing developers to add features, as available, for their existing apps. On the device side, most functionality is expected to be a driver update (in the majority of cases).
OpenGL ES, standing for OpenGL for Embedded Systems but is rarely branded as such, delivers what they consider the most important features from the graphics library to the majority of devices. The Khronos Group has been working toward merging ES with the "full" graphics library over time. The last release, OpenGL ES 3.0, was focused on becoming a direct subset of OpenGL 4.3. This release expands upon the feature-space it occupies.
OpenGL ES also forms the basis for WebGL. The current draft of WebGL 2.0 uses OpenGL ES 3.0 although that was not discussed today. I have heard murmurs (not from Khronos) about some parties pushing for compute shaders in that specification, which this announcement puts us closer to.
The new specification also adds other features, such as the ability to issue a draw without CPU intervention. You could imagine a particle simulation, for instance, that wants to draw the result after its compute shader terminates. Shading is also less rigid, where vertex and fragment shaders do not need to be explicitly linked into a program before they are used. I inquired about the possibility that compute devices could be targetted (for devices with two GPUs) and possibly load balanced, in a similar method to WebCL but no confirmation or denial was provided (although he did mention that it would be interesting for apps that fall somewhere in the middle of OpenGL ES and OpenCL).
The OpenGL ES 3.1 spec is available at the Khronos website.
With Nvidia’s Tegra K1 (ARM
With Nvidia’s Tegra K1 (ARM refrence, and Denver based cores) coming with the full desktop versions of OpenGL, OpenCL, etc. the ES 3.1 spec may be only on cell phones, as tablets should be able to handle the full OpenGL spec. This will be a big selling point for Nvidia on any ARM ISA based tablet form factor, and should enable tablets based on a full linux distro, that is if Google does not use their influnce to make tablets only offer Android! The only reason that I do not own a tablet, is the lack of ARM(or ARM ISA) based tablets running a full linux distro. Windows based tablets based on Intel processors are just too expensive, and any atom based tablets will not have the graphics power of the K1 based tablets. I hope that AMD will provide some competition with some low cost custom ARM ISA based cores with AMD’s graphics and HSA(AMD’s version of HSA), and hopefully ARM Holdings Iteself will introduce HSA aware ARM refrence designs, as ARM is also a founding member of the HSA foundation. Being able to use a Tablets GPU for general compute tasks is a good thing, and actually HSA is more implemented in the Phone and tablet form factor, as these small devices do not have space/battery power or the larger processors or dedicated graphics that the PC/laptop form factors have, so Tablets/phones will benefit more from using HSA aware SOCs. This HSA tech will also work its way into the laptop/PC devices, as for some tasks there can never be enough compute power, and it’s a waste having any Laptop/PC that can not utilize its integrated GPU at the same time as it utilizes its descrete GPU, even if the integrated GPU is only utilized for general purpose compute, or gaming physics, while the descrete GPU handles the graphics. With the right graphics drivers any laptop/PC that currently has only the ability to switch graphics from Integrated to descrete should be able to make use of the integrated GPU for at least compute, while also utilizing the descrete GPU for graphics, and maybe the OpenGL/OpenCL standards for this will be hashed out in the coming years, if the BIG CPU monopoly does not put the kibosh on a driver solution. There may be limitations to using integrated and descrete graphics for gaming, but that does not mean that descrete and integrated graphics can not be utilized for non gaming graphics rendering where latency is not as an much of an issue, or for extra compute on the integrated GPU along with the CPU cores, while the descrete handles the graphics! It only takes the right drivers and a willingness on the part of the CPU industry to put their selfish intrests aside. The ARM based companies will probably be more likely to implement most of the good parts of these driver improvments along with AMD, but Intel will have to be dragged to the table by loss of more market share before they come around.
As stated, their goal is to
As stated, their goal is to slowly merge ES into full OpenGL over time.
And for phones it will
And for phones it will probably be ES for a while, but in the tablet form factor, it will be hurry to beat Nivida’s lead with an ARM based SKUs that utilize the full desktop openGL spec for the other ARM SOC companies, that is if Nvidia’s Tegra K1 can not be made power efficient enough for phones, Apple will certenly be watching this, as well as the competition! Apple if they can get a Tablet running OSX, will have a product that can run many desktop open source graphics applications, as well as the proprietary graphics software. AMD will be producing some SKUs that will compete, but there needs to be some full Linux/BSD based desktop OSs that run on a Tablet form factor, to compete with WINTEL based tablets in the graphics tablet category! If Nvidia does not let itself become totally seduced by the Android ecosystem, to the point where it gives too much defference to a consumption OSs like Android, at the expence of full Linux. I hope that there will be a Steam OS based tablet, as well as the many Steam OS based Boxes that are about to appear on the market, and this market should not leave out a tablet form factor based on the Steam OS, in spite of Google’s influnce. Tablets based on the new ARMv8 ISA can be so much more than Just the new Boob tube, that the big ad driven intrests want computing to become.
actually nvidia did not pin
actually nvidia did not pin all their hopes to android only. they also have high hopes for winRT to be successful. about non existent full linux tablet that one you got to ask OEM instead of chipmaker like nvidia or amd. wee see plenty of windows 8 tablet from OEM surely they can put linux version on the same tablet. but why they didn’t do that?
OpenGL ES 3.1 is a major
OpenGL ES 3.1 is a major development milestone for the mobile market. It brings seriously powerful computer graphics (CG) functions like subsurface scattering, tessellation, and new high-level shader language to mention but a few of the powerful features in this latest API.
OpenGL used to follow DirectX, now it is on par and ahead in several areas. That’s how it should be. The open standard should be leader and set the bar for all other APIs, 3.1 is a great first step toward that goal.
OpenGL ES 3.1 is not the full
OpenGL ES 3.1 is not the full desktop OpenGL, and expect the ES to disappear for many a mobile system now that the full OpenGL without the ES comes to the tablet and finally the phone SOCs! The real Milestone came at CES with the introduction of an ARM based SOC that supports the Full OpenGL standard, and OpenGL comes from the same entity that makes ES, so where is your argument, the real goal is OpenGL in its full form, and not in comparing an OpenGL ES subset of The full desktop version of openGL. If I am going to buy a tablet, I will look for full desktop OpenGL now that mobile ARM tablets will soon begin to offer it! ES is a subset of Full OpenGL, I’ll take the GL without the ES thank you! My Opensource graphics programs use Full OpenGL, OpenCL, so I am not intrested in DirectX as much. This is not to imply that ES 3.1 for existing systems is not a good thing, but with the advent of tablets supporting the full openGL spec, ES will become redundent.
Again, I’m pretty sure that
Again, I'm pretty sure that it is Khronos' intentions for OpenGL ES to become redundant. "Features" in a graphics library is really a moot point these days, now that so much of the pipeline is just hooked back through the exact same shader cores. Most of the effort these days is just keeping them efficiently loaded, pushing, and beefy.
As long as any open source
As long as any open source desktop application that uses full openGL can run on a mobile tablet without having to be gimped to run on the OpenGL ES subset, then I am fine with the ES standard up to a point, but any open source code that may require the full openGL standard and not the ES subset, is going to make me look for full openGL support on any tablet device that I may buy, that and a full tablet Linux OS distro. Khronos’ intentions are not a point of contention. The ability to run the open source appplications that I use on laptops and PCs is the main point, code that does not require any refactoring for the ES subset, but will allow me to use the software on a tablet. The open source software update resources are not there for too much refactoring for most desktop code to work on tablet devices, so the ability of a tablet SOC/driver software to run the full openGL desktop version will be of more inportence, and require less/no code refactoring/porting from desktop to mobile tablet device. The android ecosystem is not a concern, as I am looking for a Full Linux OS based device, android is fine for phones, but a graphics alternative to the high priced WINTEL based graphics tablets is needed, and SOCs like the K1 for the ARM ISA based ecosystem should make a fine graphics tablet, in fact much better than any atom based integrated graphcs based device, as the K1 also is based on a more powerfull desktop graphics microarchitecture! AMD should also be a good choice, provided they/OEMs do not go all in with windows only based tablets, on their lower cost x86 based tablet SKUs. Full Linux will be a better choice for the tablet based graphics form factor, as it is inherently more lightweight than windows, and can run all of the open source graphics applications that I use. Hopefully the Khronos group is working with the HSA foundation to incorporate HSA into many divices from ARM ISA based and AMD x86 based, including making sure that any new devices have the latest OpenGL support, and are not allowed to be relegated to DirectX only, as far as graphics driver support from OEMs on PCs as well as mobile devices, where OpenGL has a better position with mobile! Once the Mobile devices have the same versions of OpenGL that the PC/laptops have this should free up more Khronos group/OEMs and others’ resources to take on the proprietary graphics APIs, and help OpenGL get closer to the metal also. Nvidia has set the bar higher for all the other players in the mobile SOC market, especially with ARMv8 ISA, and refrence based SOCs with full openGL support, this will force the other SOC competition to offer full OpenGL support, or be left behind.
Slight correction (I got
Slight correction (I got overly enthusiastic) tessellation is not actually supported in OpenGL ES 3.1
And there are enhancements to the GLSL shading language – but it’s not a ‘new high-level shader language’ per se
Also, subsurface scattering is not supported explicitly – but you could use compute shaders
Compute Shaders are really the headline functionality for OpenGL ES 3.1
One thing for sure, there is
One thing for sure, there is much FUD on the blogs right now with the release date of DX12 coming up, and the M$ minions are out in force trying to paint OpenGL as unnecessary, but as far as OpenGL goes the more open graphics cross platform standards the better, and M$ can not make that claim the with DX12 API, nor can Nvidia or AMD with their proprietary/simiproprietary APIs. For those using open source software OpenGL is very necessary as it is the main cross platform graphics HAL for most of the open source graphics software, and Steam OS Gaming/others. Hopefully AMD’s mantle influnce will lead Khronos to a more close to the metal version of OpenGL at least on AMD’s GPUs, and force Nvidia to follow by keeping its OpenGL driver improvments coming. Any open standards group be it Khronos, the HSA foundation, and others, can only help improve the technology, as proprietary versions of graphics HALs only stifle innovation.