The ARB announced OpenGL 3.0 and GLSL 1.30 today

Here is the link to the spec:

The Khronos™ Group announced today it has released the OpenGL® 3.0 specification with strong industry support to bring significant new functionality to the open, cross-platform standard for 3D graphics acceleration. OpenGL 3.0 includes GLSL™ 1.30, a new version of the OpenGL shading language, and provides comprehensive access to the functionality of the latest generations of programmable graphics hardware. The OpenGL working group has also defined a set of OpenGL 3.0 extensions that expose potential new functionality for the next version of OpenGL that is targeted for release in less than 12 months, and a set of extensions for OpenGL 2.1 to enable much of the new OpenGL functionality on older hardware. Additionally, OpenGL 3.0 introduces an evolutionary model to assist in streamlining the specification and to enable rapid development of the standard to address diverse markets. Finally, the OpenGL working group has announced that it is working closely with the emerging OpenCL standard to create a revolutionary pairing of compute and graphics programming capabilities. The new OpenGL 3.0 specifications are freely available at .

The OpenGL 3.0 specification enables developers to leverage state-of-the-art graphics hardware, including many of the graphics accelerators shipped in the last two years both on Windows XP and Windows Vista as well as Mac OS and Linux. According to Dr. Jon Peddie of Jon Peddie Research, a leading graphics market analyst based in California, the installed base of graphics hardware that will support OpenGL 3.0 exceeds 60 million units. AMD, Intel and NVIDIA have made major contributions to the design of OpenGL 3.0 and today all three companies announced their intent to provide full implementations within their product families. Additionally, the OpenGL working group includes the active participation of leading developers such as Blizzard Entertainment and TransGaming that have played a vital role in ensuring that the specification meets the genuine needs of the software community. “We are very pleased to see the release of OpenGL 3.0, which includes numerous features and extensions that will help us and other ISVs bring amazing gaming content to OpenGL-based platforms,” commented Gavriel State, founder & CTO of TransGaming, Inc.

OpenGL 3.0 introduces dozens of new features including:
– Vertex Array Objects to encapsulate vertex array state for easier programming and increased throughput;
– non-blocking access to Vertex Buffer Objects with the ability to update and flush a sub-range for enhanced performance;

– full framebuffer object functionality including multi-sample buffers, blitting to and from framebuffer objects, rendering to one and two-channel data, and flexible mixing of buffer sizes and formats when rendering to a framebuffer object;

– 32-bit floating-point textures and render buffers for increased precision and dynamic range in visual and computational operations;

– conditional rendering based on occlusion queries for increased performance;
– compact half-float vertex and pixel data to save memory and bandwidth;
– transform feedback to capture geometry data after vertex transformations into a buffer object to drive additional compute and rendering passes;

– four new texture compression schemes for one and two channel textures providing a factor of 2-to-1 storage savings over uncompressed data;

– rendering and blending into sRGB framebuffers to enable faithful color reproduction for OpenGL applications without adjusting the monitor’s gamma correction;

– texture arrays to provide efficient indexed access into a set of textures;
– 32-bit floating-point depth buffer support.

The new version of the OpenGL Shading Language, GLSL 1.30, provides front-to-back native integer operations including full integer-based texturing, integer input and outputs for vertex and fragment shaders and a full set of integer bitwise operators. It also improves compatibility with OpenGL ES, adds new interpolation modes, includes new forms of explicit control over texturing operations, provides additional built-in functions for manipulating floating-point numbers and introduces switch statements for enhanced flow control within shader programs.

The OpenGL working group has also released a set of extensions to OpenGL 3.0 that can be immediately used by developers and, after industry feedback, will potentially be included in the next generation of OpenGL targeted for release in less than 12 months. These extensions include geometry shaders, further instancing support, and texture buffer objects.

Khronos today also released a number of extensions to OpenGL 2.1 which enables some of the new features in OpenGL 3.0 to be used on older generations of hardware. These extensions include enhanced VBOs, full framebuffer object functionality, half float vertices, compressed textures, vertex array objects and sRGB framebuffers.

Additionally, OpenGL 3.0 defines an evolutionary process for OpenGL that will accelerate market-driven updates to the specification. The new OpenGL API supports the future creation of profiles to enable products to support specific market needs while not burdening every implementation with unnecessary costs. To avoid fragmentation, the core OpenGL specification will contain all defined functionality in an architecturally coherent whole, with profiles tightly specifying segment-relevant subsets. OpenGL 3.0 also introduces a deprecation model to enable the API to be streamlined while providing full visibility to the application developer community, enabling the API to be optimized for current and future 3D graphics architectures.

Finally, the OpenGL working group is working closely with the newly announced OpenCL working group at Khronos to define full interoperability between the two open standards. OpenCL is an emerging royalty-free standard focused on programming the emerging intersection of GPU and multi-core CPU compute through a C-based language for heterogeneous data and task parallel computing. The two APIs together will provide a powerful open standards-based visual computing platform with OpenCL’s general purpose compute capabilities intimately combined with the full power of OpenGL.

“OpenGL 3.0 is a significant evolutionary step that integrates new functionality to ensure that OpenGL is a truly state-of-the-art graphics API while supporting a broad swathe of existing hardware,” said Barthold Lichtenbelt, chair of the OpenGL working group at Khronos. “Just as importantly, OpenGL 3.0 sets the stage for a revolution to come - we now have the roadmap machinery and momentum in place to rapidly and reliably develop OpenGL - and are working closely with OpenCL to ensure that OpenGL plays a pivotal role in the ongoing revolution in programmable visual computing.”

More details on OpenGL 3.0 will be discussed at the OpenGL “Birds of a Feather” meeting at SIGGRAPH in Los Angeles at 6PM on Wednesday August 13th at the Wilshire Grand Hotel. More details at Khronos Siggraph page.

The OpenGL 3.0 specification enables developers to leverage state-of-the-art graphics hardware…

…with a state-of-the-ark API.


don’t [censored] care anymore… don’t [censored] care!

We are very pleased to see the release of OpenGL 3.0, which includes numerous features and extensions that will help us and other ISVs bring amazing gaming content to OpenGL-based platforms," commented Gavriel State, founder & CTO of TransGaming, Inc.

Doesn’t he mean ashamed?

I can hear the laughing at Seattle from here (and i’m in europe) :frowning:

Me neither. ARB showed that it

a) doesn’t care about the community
b) cannot do anything
c) doesn’t care about the API
d) has no forward thinking

They only keep making Gl more and more bloated and ugly, despite the great ideas that were proposed. As a result: drivers become more complicated (look at the vertex array object, it is non-trivial logic for a driver developer) = no quality improvement on ATI, Intel; the API is even more irritating; GL 3.0 is only usable on DX10 class hardware = no benefit at all, for nobody. The deprecation system is nice, but they should have just removed that stuff altogether.

Hell, I won’t be really disappointed if they just take ES 2.0 and make it a desktop API, it has some right design choices. But this GL 3.0 spec is a mess from GL1.x and ES ideas. Why teh hell deprecation mode? Just kill that stuff already, no one cares! And CAD people should just use the GL1.5, if they are unable to write a normal renderer. Still, I would like to hear what they have to say as SIGGRAPH

Hi all,

A friendly reminder to please watch our language when posting.


I see santyhamer’s woot and raise it a yipee!

Lookey here:

  • wglCreateContextAttribsARB with optional debug context
  • MapBufferRange/FlushMappedBufferRange
  • VAO
  • TransformFeedback
  • MS FBO/Blit with mixed formats
  • A slew of required texture formats (e.g. D24S8)
  • Cleaner GLSL attribute specification (in/out)
  • Deprecation of lots of GLSL builtin state
  • No more mixed FF/programmable pipes
  • Deprecation model goodness

This strikes me as a pretty good compromise, somewhere in between Longs Peak and Mount Evans.

Now if they deperecate/remove the last of the cruftier vestiges of GL2 in the next version and bring in all of SM4 proper to the core…

I like many others who have already posted, and those who will, am severely disappointed, if not angry or even infuriated.

We waited numerous months with no word of anything as we hoped that they would deliver on their word and give us a clean API.

All we got was a list of ‘features not to use anymore’

Truly, a disappointment.

I swear to god, this would be the ideal time for nvidia to release their own rendering API, based on the promised object model (call it nvgl). I would start using it immediately. They did it with Cg, now do it with the actual API with Cg as its shader language.
In reality, the best evolutionary step for the ARB to have taken would have been to introduce a new API with object model implemented using the existing the old API, and encourage the slower members of the GL community to use it in preference, while still giving the ability to use the existing API directly.
I just see what they’ve done with GL3 as a waste of everybody’s time - IHV’s and CAD developers.

Yeah that would be awesome. If they did I hope they release a C++ version of it. Because OpenGL needs a real C++ wrapper :frowning:

Why didn’t they just move the stuff they promised us in OpenGL 3.0 into a seperate dll/lib while stil keeping the other junk for those stupid CAD Developers

Is bugzilla going to have OpenGL 3.0 as an option to submit errors for soon?
In Table N.1, the specification lists a couple of name changes:


However, these haven’t been changed in the document, and surely these are separate things anyway, and need updated documentation?

Also, Appendix O: ARB Extensions doesn’t include the new extensions listed in registry.

And so OpenGL dies a slow death afterall.

Yes, OpenGL dies, and this is ARB’s mistake!
That’s mean I need D3D for future?
Doh! Thst’s why Karmak look at D3D…


So after all OpenGL will became the API for the uber (lazy)cool professional CAD developers while DirectX becomes game developer’s (only)choice.

In the end the ARB struck a big blow to the other than windows development (as said before, the mac/linux dude suffers the most)

The good thing is that I’ve started some time ago to port my rendering system to d3d and I haven’t wasted the time spent developing it.

Honestly I wish it was wasted and OpenGL 3.0 delivered…

mmm… is it a mistake or the spec says that the whole ALPHA_TEST thinggie is deprecated? :/… what’s the alternative?

The alternative is killing fragments in the fragment shader.

“discard” in the fragment-shader. Or discard OpenGL altogether.

DX10/11 are looking mighty attractive right about now, as soon as I get a vista machine its goodbye OGL. The OGL API needed a complete rewrite and it did not happen, and no amount of extensions is going to fix that.

I second the suggestion of getting a ogl-spec without all the deprecated stuff. Surely it looks really bad überbloated, the way it is now. Completely against the “cleanup” mentality.

And eventhough the new objectmodel isnt there, which does feel like a punch for sure, after all the previous discussion around it, you could at least try to present the “future” better. Atm it looks really like the community was completely ignored. Even with the new obj missing, things could have been presented a bit nicer and cleaner, instead of stepping on everyones shoes, almost seeming purposely. Yes the legacy folks would be scared if only the lean & mean version exists, but you could have always made two pdfs in that year…

Which yields the question, what took so long to decide about “deprecating” stuff and adding a few new extensions, which could have been 2.2 or whatever? Its not like deprecating first, then removing is bad, it surely was the only way with the legacy that gl has. But that list could have been given out a year ago, with GL ES already similar… Really what exactly took so long?

atm it jsut looks so PR-marketing like, just adding “more”, handing out a monster document of a giant api, when after all “developers” are the consumers of this product, and not some kid who just installed quad-sli cards and has vista anyway :wink:

so please, please get the cleaned up spec out soon.