Why not use higher level framework like SceneKit?
That's what we use for MBS Xojo Plugins for 3D Graphics now.
@Beatrix W You know you should have tested this before development.
Agreed; I let my frustration with Apple cloud my judgement. I was so miffed that they broke OpenGL in Mojave, I incorrectly assumed that as 10.11 supports Metal, all the machines it runs on also supports Metal.
@Tim J make me wish that I could simply pull the plug on our macOS offerings.
You, I and many macOS developers feel this way. The annual updates with a general lack of care have helped to eat away at Apple's "It just works" reputation. They do themselves no favors with their current hardware either.
@Jeff T In smaller ways, Apple's changes generate issues for me with nearly every release.
This is how a lot of developers feel, so much work, just to keep the app alive, which takes away time from being able to make the application a better product. It's infuriating.
@Jeff T Maybe this is another early sign of moving to ARM.. remove OpenGL and they don't have to recode that bit?
Technically they already have it for ARM, as it was also in iOS. However they've removed it from there also. My feelings on why Apple it removing so much stuff from the OS, is to reduce the workload for the engineers, so that they can reduce the amount of engineers and therefore save costs, and increase ROI.
@ChristianSchmitz Why not use higher level framework like SceneKit?
Because I am not using OpenGL/Metal for 3D scene rendering. I am using it/them as a rendering destination for Core Image, which gives incredible onscreen performance increases.
For the time being, I've cobbled together a new canvas subclass that uses CALayers, when OpenGL is selected it creates an CAOpenGLLayer and when Metal is selected it creates a CAMetalLayer. If Metal is supported, it uses Metal, otherwise OpenGL. They're not directly compatible, so I've duct taped some bridge code so that can at least both draw. I've removed some functionality, I may add it back in the future, once I can figure out a solution for both.
I've also reverted my kernels to use GLSL (as this works on both, for the time being) instead of MTSL.
Hopefully today or tomorrow I can send this out for testing.
Do you want to know something funny? Our much earlier apps; which are pure Xojo & Einhugur picture effects, compiled as 32-Bit CARBON applications (back last decade), still kinda work in Mojave (although not always). Yet an app I wrote last year, using Apple's image editing API stopped working when Mojave was released. Seems like the moral here is to avoid using Apple's fancy APIs!
I hope you didn't use any intel optimize threading or SIMD / MMX dependant calls.. like OpenCV...
I hope you didn't user and nVidia optimized parallelism like CUDA...
I hope you didn't think cross platform would live for very long....
It's just time we developers said no to this...
In the mean time.. what about Vulkan?
@Brian O'Brien I hope you didn't think cross platform would live for very long....
It's just time we developers said no to this...
That's the painful irony here, as I didn't go x-plat with this project. I am just targeting the macOS, but with Apple's rabid rate of change (I swear some of it is simply for changes sake), it's becoming almost impossible to rely on using Apple API for more than a couple of versions of the macOS.
@Brian OBrien In the mean time.. what about Vulkan?
Sadly Vulkan isn't supported by Core Image. Although if I'm honest I do question how long Apple is going to support Core Image.
It's apparent now that I cannot trust Apple to not break things in the future, and therefore I need to come up with a solution whereby I use as little of their stuff as possible, this would also help to open it up to becoming an x-plat application. Which I think is going to be more critical in future.
I primarily used TurboForth for the TI-99/4A and JForth on the Amiga. Forth was so much more productive than TMS ASM. The TMS9900 was on par with the later Motorola 68000, but had far more extensible features - Need a new set of registers - create 'em. Too bad TI botched that chip. I'd love to see where that architecture ended up by modern standards.
Forth was awesome. So was the amiga.. 68000 architecture.. Motorola. Big Endians.
It's about time the industry had a bit of an upheaval..
I feel like we haven't moved passed the 386, all we have now are cores of these older processors.
Anybody remember Occam and Transputers?
the rest are just "we're getting rid of opengl and opencl so move to metal"
@Ed K Anyone know of a reference to information for what specifically in OpenGL broke in Mojave?
For me what broke was the locations, so only content from the bottom left corner would be displayed, but stretched over the entire canvas. It was fixed in one point release, only to be broken again in another. Rule of the thumb: As it's deprecated engineering are not going to dedicate time to fixing bugs.
The long and the short of it is that OpenGL is finished on the Mac, even if you work around the bugs today, there could me more tomorrow, and at some point the entire OpenGL library will be removed.