OpenGL3 and Mac

It’s certainly possible to program in a GL3.x compliant way even with the current GL2.1 implementation and the extensions that are exposed. I have been doing so for most of the last 18 months or so.

So does Apple’s GLSL compiler accept:


#version 130
in float Foo;
out vec3 Bar;

?

Because if it doesn’t, then you are certainly not coding in a 3.x-compliant way.

65% support is not good enough. 95% support is not good enough, either, especially since the last 5% affects every single shader you write (lack of GLSL 1.3, which I really hope is fixed before the final 10.6.3 release).

Apple should be - and is - criticized for this by the community.

Wrong again. I am saying it’s not a huge issue and there are reasons that I understand and appreciate as to why it has not been implemented fully yet.

Absolutely. Moaning and whinging in public forums is widely recognised as the best way to get huge corporations to change their strategy, especially Apple.

Taking, err, how many nano-seconds exactly?
Please refer back to the last paragraph in my last post. :slight_smile:

Taking, err, how many nano-seconds exactly?
Please refer back to the last paragraph in my last post. :slight_smile: [/QUOTE]

Way to miss the point. Hint: this is not about performance.

The problem is that a developer simply can’t count on all the functionality being there when they want to use it. Apple often requests developer input as to which functionality they might want to use - but, even when these requests are honored, the time-to-implementation is measurably high.

Having OS X lagging 18 months behind the spec with no visible commitment to shipping something that could be called 3.0, 3.1, 3.2 or even the next revision around the bend - it is in stark contrast with the tack being taken on OpenCL.

The developer story would be greatly simplified and improve confidence in the direction for GL on OS X, if Apple would just implement the specs in their entirety and not create this a-la-carte mess.

This is what timely, comprehensive OpenGL support looks like:

http://developer.nvidia.com/object/opengl_3_driver.html

They actually refer to them as 3.0, 3.1, and 3.2 drivers - because they actually implemented everything in the spec and are thus worthy of the appropriate version label.

Above and beyond simple compliance with the core specification, they have a large number of ARB extensions implemented.

“This driver supports all of OpenGL 3.2 and GLSL 1.50 and the following new extensions…” - Sep 29, 2009.

If you can read the GL 3.2 spec, you can use all those features on that driver, and then some.

But not to focus unfairly on NVIDIA; let’s have a look at AMD on Windows.

-> shipping a 3.1 compliant driver five months ago

http://www.opengl.org/news/comments/amd-releases-driver-with-opengl-3.2-support/
-> shipping a batch of GL 3.2 functionality, though not quite a full 3.2 driver yet.

It shouldn’t come as a surprise that AMD and NVIDIA are already well past the OpenGL 3.0 and 3.1 spec level; after all the 3.0 spec was published in July 2008 and 3.1 was published in March of 2009 - almost a year ago.

There’s really no positive spin on this.

Gosh! You mean GPU manufacturers are the first to have the new drivers done! Wow! Oh… wait… You are literally comparing Apples with Oranges. Pardon the pun.

So Janitorial (and anyone else) I am curious…

Apple didn’t bother putting OpenGL3.x into OS X yet, … because?

Because they are incompetent?
Lazy?
Hate graphics programmers?
Just want to mess with people’s Chi?
Couldn’t be bothered?

I am just wondering what particular random reason they chose…
Or if perhaps there could be a good reason for it…

I am sure all the geniuses in this thread could just pop over to Infinite loop and sort out Apple’s graphics department in a second if only they were given a chance… If anyone wants a couple of direct emails so they can drop a line to the engineers and tell them what they think I’d be more than happy to oblige…

Also I am equally curious to see what groundbreaking commercially available products are out there right now exploiting all this OpenGL3.x goodness to the full. Seeing as we’re so far down the line with commercial bug-free OpenGL 3.x drivers all over the place…

Does Windows 7 use GL3.x features?
By that I mean more than expose drivers that someone else wrote for them?

How about Linux?

Do you guys get the difference between these platforms?

I guess for the same reason they delayed more than year the Java 6 support on the platform and tied it to Leopard.

Apple has a tight control on which drivers and technologies get delivered to MacOSX.

On Java’s case, it is Apple that wants to provide its own implementation, instead of having Sun supporting it.

Maybe it is the same type of situation with graphics drivers. Actually, if you go to the graphics manufacters sites, they don’t provide the option to download drivers for the MacOSX.

If I get you right in this thread, this problem seems to be near getting solved. If so, good. It is not the first time Apple has lagged behind. Remember when shaders were emulation only on all Macs? That was up to 10.3. Not funny. But after that I think they were pretty well updated for a while, up to 2.1.

What Apple tells us is to file bug reports or similar. I am not sure if that matters. But I don’t think a web forum thread matters more. Maybe articles in respected magazines. Apple’s own mailing lists are good, I have had direct contact with Apple engineers there several times, and they were quite helpful.

Apple has always been kind of late delivering opengl updates.

pjmlp, Sun originally didn’t want to support Mac OS X, plus apple wanted to optimize it to the OS. I talked to apple engineers about this a number of years ago. About them taking so long to get it going, I don’t think they have an excuse other than just not hiring enough engineers.

As for Open GL, Nvidia and AMD actually do write the backend drivers for Apple, and they have both been quite late updating drivers for things in the past. However, I spoke to an OpenGL driver engineer from Nvidia like 3 or 4 years ago over lunch at GDC. He told me that Nvidia would gladly do the entire open gl implementation, but Apple wanted to do the high-level part of it because they wanted it to work as close to the same across graphics cards as possible. This paid off for them regarding the intel graphics cards, for which Intel still doesn’t have decent open gl drivers on windows.

This doesn’t excuse them in any way. I think they are so far behind because they put tons of their OS and graphics engineers on the iPhone, which recently just added OpenGL ES 2.0 support. Not to mention putting them on doing OpenCL. These also delayed the release of Snow Leopard. Apple always seems to put OpenGL and gaming support for the Macs on the back-burner. I think it hurts them extremely. People from Valve said they had talks with Apple several times about supporting the mac, and what they needed from them so they could do it. They reported that apple responded to them that games were important and they would get right on it. They never did. Hopefully apple will get a clue with 10.6.3 as the reports say. I’ve sure been waiting for them to get one.

OpenGL 3.2 and Open CL are support on linux, btw. They actually were stable on linux before windows for both AMD and Nvidia, if memory serves. Go figure.

At least Valve ports Source Engine to Macs, maybe that hints for some updates in april ?

Actually, yes. Valve is bringing Steam to Mac in April, and Portal 2 is announced for mac. They are also going to port all future games to mac, at least for the foreseeable future.

AND, if you own any games on steam, you can download the mac version for free, which is a big deal.

I would say they should skip OpenGL 3 outright and go directly to OpenGL 4 now.

I would say they should skip OpenGL 3 outright and go directly to OpenGL 4 now.

No. They should expose both GL 3 and GL 4. If you have hardware that is 3.x only, you shouldn’t be restricted to 2.1 + extensions.

10.6.3 is out and in good classic Apple manner they sure doesn’t fail to disappoint. Getting really fed up with this sh*t.

Which feature were you looking for ?

How about GLSL 1.3 for starters? :slight_smile:

What specifically are you looking for in 1.30? Anything that you can’t already do in 1.20 + EXT_gpu_shader4?

No way! Are they going to make us way until MacOS X 10.7 to reach OpenGL 3.0 and use it as a selling feature?

Hello! OpenGL specs: every 6 months. MacOS big versions, every 12 / 18 months.

Of course you can do almost anything with the gl2.1 + extensions but that is not the point here. All other platforms have more up to date drivers. (even bsd and open solaris it seems!!!) It’s is especially annoying that Windows is a better OpenGL dev platform than Mac when Microsoft actively works against OpenGL while Apple sits on the darn board!
I work in visualization and want to have access to the latest and greatest and although I love the Mac platform I’m slowly feeling forced to move to Linux for serious dev work. Why not 3.3 now? I don’t get it? Why do apple sit on the board and work on the spec if they won’t use it?
Let’s turn this around: Why are you content with having to use 2.1 + extensions and missing access to hardware features that all the rest of the computing world has access to?

I follow that especially on a platform whose targets are likely to be into graphics. Maybe not games yet, but real graphics software.

“Norrköping, Sweden” nice… EuroGraphics?