If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Yes, but it would make sense for an "open" standard to have a reference implementation which you could use as a gold standard for correctness.

This is not always the case, but I find it strange.

While a reference implementation would be nice, in this case it's not practical since it depends on hardware. C++ is another example where a reference implementation would be less useful than specific implementations.

Originally Posted by M1kkko

That's what I had in mind. The current situation is, "you can use OpenGL, but only with proprietary drivers".

Not really, Mesa supports OpenGL up to 3.0 & KOS for the Dreamcast supports roughly 1.2. Neither of these are certified OpenGL though, they just implement the standard. That's not to say though you have to use a proprietary implementation. I don't see where the confusion is here...

And I still don't, after all these years, quite get it how there can be an "OpenGL" specification without a free implementation of it? I know it's always been this way, but I've never quite understood..

You need to remember the history. OpenGL came out when there weren't good cross-vendor standards, so to a large extent every graphics workstation vendor had a different graphics language. The idea was to make a standard that could be implemented by a number of different proprietary graphics hardware systems, which in turn mostly ran on proprietary UNIX-based OSes -- don't think there was any consideration of open source. I'm not even sure the term "open source" existed at the time.

That's what I had in mind. The current situation is, "you can use OpenGL, but only with proprietary drivers".

You have that much need for a terribly preforming softpipe that has the sole goal of being a reference implementation? Honestly, a reference driver can't be made, because graphics cards are not uniform.

Not really, Mesa supports OpenGL up to 3.0 & KOS for the Dreamcast supports roughly 1.2. Neither of these are certified OpenGL though, they just implement the standard. That's not to say though you have to use a proprietary implementation. I don't see where the confusion is here...

The confusion here is due to the open implementation (Mesa) not being in any way affiliated with those behind the specification itself (the Khronos group).

Mesa is far from being compliant with the newest OpenGL specification, and as such is in no way a "gold standard for correctness" either. That makes OpenGL an "open" specification with only closed implementations. I could even go so far as to say that I wouldn't consider OpenGL really open until there is an actual open reference implementation out there.

In other words; I'm going to be playing my games with the proprietary Nvidia driver if I want to enjoy the latest version of this specification.

Originally Posted by bridgman

You need to remember the history. OpenGL came out when there weren't good cross-vendor standards, so to a large extent every graphics workstation vendor had a different graphics language. The idea was to make a standard that could be implemented by a number of different proprietary graphics hardware systems, which in turn mostly ran on proprietary UNIX-based OSes -- don't think there was any consideration of open source. I'm not even sure the term "open source" existed at the time.

A quick scan of Wikipedia suggests :

OpenGL - 1992
DirectX - 1995
Common use of term "open source" - 1998

Now that we have a historical perspective, it suddenly starts to make more sense. It would still be nice to have official support from Khronos though.

By the way, I said a free implementation, didn't I? I believe the term free software dates back to the early 80's, if not earlier.

Mesa is far from being compliant with the newest OpenGL specification, and as such is in no way a "gold standard for correctness" either. That makes OpenGL an "open" specification with only closed implementations. I could even go so far as to say that I wouldn't consider OpenGL really open until there is an actual open reference implementation out there.

I'm not sure if there is complete consensus on this, but I suspect that Mesa probably *is* the closest thing to a gold standard for correctness, at least for the GL levels it supports. Some (but not all) of the proprietary implementations support higher GL levels, of course.

There was an "official" reference implementation from SGI (which SGI open-sourced recently) but the last update was to OpenGL 1.2.

BTW before you pick a specific proprietary implementation as your "reference", you might want to read up on strict vs relaxed implementations. There are some significant differences in the way that out-of-spec API calls are handled, each with pros and cons.

Originally Posted by M1kkko

By the way, I said a free implementation, didn't I? I believe the term free software dates back to the early 80's, if not earlier.

Yes, but your implication seemed to be that the use of the word "Open" in the standard name meant that it should at least have an open/free implementation -- or maybe I got that wrong.

I was going to say something like "they didn't call it FreeGL" earlier, but I thought that could have come across as more sarcastic than I intended

"""The Khronos Group today announced the immediate release of the OpenGLŪ 4.3 specification, bringing the very latest graphics functionality to the most advanced and widely adopted cross-platform 2D and 3D graphics API. OpenGL 4.3 integrates developer feedback and continues the rapid evolution of this royalty-free specification while maintaining full backwards compatibility, enabling applications to incrementally use new features while portably accessing state-of-the-art GPU functionality across diverse operating systems and platforms. The OpenGL 4.3 specification contains new features that extend functionality available to developers and enables increased application performance. The full specification is available for immediate download."""

OpenGL is a Royalty-Free specification. They will not give you their closed code, but you can write your own that works similar, without the concern for patents. Free specification (how it works), not free code. Of course there are side patents like S3TC, but OpenGL will destroy them eventually with new open standards.