Time to drop OpenGL in favor of Metal/DX12

Lots of Mac ports of things using OpenGL or Vulcan use a wrapper that redirects the internal pipework from the previous API to the new one.
Previously it would report as Apple GPU or something under the area that would have said OpenGL.
Perhaps a bug that it is showing something else - or maybe a fix to help certain extensions continue working?

Hmm. turns out we’re finally getting our wish, sooner or later.

I wonder how big of a task it’s gonna be, after 23 years, to switch to something else.

A huge task for sure - even smaller changes in this years release cause difficulties for users and developers.

2 Likes

I hope the guy who loves OpenGL doesn’t try to sabotage these move. Every time I’ve posted or commented on a post about sketchup changing the API, he appears defending OpenGL, claiming that it’s not OpenGL fault.

Although OpenGL does what it was designed to do, it is old, getting creaky, and Apple has ceased supporting further updates. So, it’s time to rethink SketchUp’s dependency on it. The post announcing a change is proof that Trimble is aware of this. Regardless of what is chosen as its replacement, there will be a lot of work to do and a high risk of glitches. If release is delayed it doesn’t mean some OpenGL fanatic is blocking progress, it just means this is a major change that needs to be done cautiously.

2 Likes

hey, you don’t know, I can picture a meeting at trimble’s HQ with someone in a suit nervously saying "guys, we have a problem, we have to delay our update to the millions of users, Jimmy420 on our forum don’t think leaving openGL is a good idea. we have to abort now! " :clown_face:

Besides, Anssi’s point wasn’t that openGL is superior to metal and d12. He wrote that claiming that a change of technology would solve every issue was incorrect. and he’s got a point. The change will solve some issues, but you can be sure it’ll raise new ones and unfix bugs.

Just look at the change of framework on the PC version in 2023, the impact on its appearance and the bugs it created on the way. Yet I’m pretty sure most devs would say the new framework is better than the old.

That’s developing for you. That’s why they often try not to fix what’s not broken in the first place. unless they have to.

Just my point. Besides, being a half-retired old guy in Finland not working for SketchUp diminishes my possibility of sabotaging SketchUp development considerably.
I am quite convinced that the SU team has people who do know what makes it tick and have an idea where the bottlenecks are. I am also afraid there is no magic bullet - if one existed it would have already been used. The only quick fix to things I have seen was some time around 1988-90 when Autodesk rewrote the snapping algorithm in AutoCad. That is why I am skeptical about the ability of users to tell developers how to do their job.

3 Likes

Agree completely! Having been a developer in a past career, I am always put off when a non-developer posts something like “it would be easy to” or “app x does this, so it must be possible for SketchUp too” without any understanding of how SketchUp is actually programmed or what would be required to make the “simple” change.

Again, agree.

2 Likes

I can’t. For two reasons:

  • Trimble has already shown its willingness to take SketchUp in daring new directions that users opposed or didn’t ask for, such as the Web version and subscription license.
  • A far more likely scenario would be a meeting at which the Suit says to the developers “that will cost HOW MUCH!! We’re not going to spend that just to placate users”.

In your own words, can you tell us why OpenGL is the issue?

I don’t believe that OpenGL is the issue, rather the SketchUp renderer itself is very inefficient, but that is a different thing.
I think The I.Pad version uses metal (I think Apple already deprecated OpenGL support).
And guess what? It doesn’t perform massively different to the other versions.

Anyways; the point is changing the graphics API in itself will have little benefit.

The OpenGL version used on Mac is the 2.1, while the windows version is the 4.6, all the APIs improve their performance with every new release.
Apple dropped OpenGL support in 2015, so newer versions aren’t gonna be supported.
I use other softwares like blender and archicad which have already ported their programs to Metal, and the performance gains are huge, specially on blender, it can handle huge models without any viewport lag, even with heavy textures, the same model imported from sketchup but without textures is imposible to work with, orbiting or zooming take a lot of time, tha same for every other tool, getting out from a group/component is unbearable, I had to divide the model in 10 parts and hide the 9 parts I wasn’t working with.

I’m not a software engineer or developer and I don’t know if moving to Metal will solve all the sketchup and layout problems, I just guide myself based on the experience using other programs that have changed their API from OpenGL to Metal. Maybe the sketchup renderer could be the problem and it’s posible that the performance gains won’t be the expected if Trimble makes the move, as a sketchup user for over 10 years and fan of the program, I just want it to improve to be able to compete with other softwares, this is one of the reasons why a lot of people don’t take sketchup seriously, I think sketchup is one the best if not the best software for architecture, and I try to develop my entire projects just on it but sometimes it’s just impossible to do it, I would like to stop using and paying Archicad but it’s still needed for big projects.

2023 reports 2.1 , but I think it is a bug that this is reported this way, other versions do not say this.
4.1 was the latest version of OpenGL support by Apple.
2023 for some reason says 2.1 , rather than 4.1 or APPLE GPU as it did previously.

Anyway, all I’m saying is that buying into the magic bullet that is METAL is going to dissapoint you.
SketchUp for sure needs some modernisation in this department, but the API is not the crux of the problem.
Fortunately, SketchUp are working on new rendering engines for SketchUp and are investigating the impact that will have across the wider ecosystem, as such a big foundational change will impact certain plugins or renderers.

It seems that Apple rolled back to 2.1 as soon as they launched Metal. maybe they had a better compatibility / translation ?
it was already the case in Big Sur
When last week I had the colour bug, I dug deep. At some point, I found the temp files that are created when SU runs, and there was a “startup checklist” mentioning both OpenGL 2.1 and Metal.

Capture d’écran 2023-03-14 à 11.53.02
Witch would tend to confirm that 2.1 was chosen by apple deliberately. It’s not 2.1, it’s 2.1 Metal.

1 Like

Time to drop Mac for Windows :stuck_out_tongue_winking_eye:

3 Likes

Thank makes a lot of sense : Metal 2.1

I wonder if that means 2023 is using metal already (or at least a wrapper as previously speculated)

The final taboo

What the SketchUp user share of Mac vs. Windows is has never been published, or at least not recently. Globally the Mac market share in sales of new computers has been recently a little above 10%.

No, it’s not Metal 2.1, it’s still openGL 2.1, so I’d say wrapper. Metal 3 is the current version, compatible with late AMD macs and intel ones. so no reason to limit SU to metal 2. hence the hint that it’s still openGL in a wrap

I got the same info running 2022 btw.
my guess is the switch was made when they made the Silicon version, so 2022.

considering the performances I get with an openGL 2.1 vs the ones I get with an openGL 4.1 I really don’t see why switch as a main PC. I’ll keep my PC for teaching, and the mac for general work :wink:

FWIW, below is the report I get from the GLView app on my Intel-based MacBookPro running Ventura 13.2.1. I don’t know how Apple Silicon may differ, but this clearly says I have OpenGL 4.1, not 2.1.

Well same here on an M1 mini, if I choose core (top right, OpenGL profile) it tells me 4.1, witch is quite consistant with the fact that apple dropped openGL’s support at 4.1 .

But if I choose Compatibility I get 2.1
Not entierely sure of what it means, I’d say it goes with my previous observation, it’s capable of 4.1 but has a compatibility 2.1 mode, apparently used in SU

Capture d’écran 2023-03-14 à 16.10.28
Capture d’écran 2023-03-14 à 16.13.50



I realise we’re off topic now, but as a puzzle enthusiast, I find this exploration quite nice :slight_smile:
Dear SU’s devs, if you’re allowed to, fell free to enlighten us about the history and process of what happened over the time :slight_smile: