We’ve been porting our Windows plugin to ETO so that we can now easily create both OSX and Windows versions of our plugin. So far we have it running great under OSX Rhino 7 however have hit a problem with Rhino 8.

Rhino 8 release build appears to have moved entirely to Metal and our rendering code (C++) is all OpenGL based. I was hoping there was a “switch” somewhere in the settings where we could make the OSX version of Rhino 8 revert to OpenGL. Confusingly under the settings in Rhino 8 there’s lots of options for toggling settings in OpenGL.

Is there a straightforward way to get our OpenGL pipeline working in Rhino 8 on OSX or are we looking at a complete rewrite to move to Metal?

Many Thanks


And a corollary question: Has McNeel found any good tools to aid in converting OpenGL to Metal?

I think the short answer is that OpenGL on Mac in Rhino 8 is a no go,
but @stevebaer and @jeff can better answer this question.

There is an unsupported and undocumented switch back to legacy OpenGL with the TestMetal command. I don’t recommend using it and we can’t really support it. OpenGL drivers on Mac have been historically difficult to work with and they seem to have gotten even more troublesome with the Silicon based Macs that Apple ships these days.

Using metal on Mac is really the way to go. We may be able to help here by providing some more functionality in our SDK. It is probably best to work together to try and figure out how to minimize the amount of GPU specific work you would need to do. Maybe we could set up a meeting for this.

There are two parts to GPU technologies; the C++ CPU side code that works with metal and opengl to define how the system works and then shaders written in GLSL or metal shading language to run as small programs on the GPU. There are tools to convert shaders to different languages, but in reality that is not the hard part at all. We probably had to spend three weeks rewriting our shaders from GLSL to metal and then spent three years getting the CPU part done.

Thanks for the feedback everybody. It’s a shame the OpenGL support is so broken in Rhino 8 as it’s working fine in Rhino 7 on OSX.

Never mind… we did know this day would come so it’s not a big problem. Just need to move the porting up the “to do” list!

Many Thanks