Nattering on physics-based rendering, Macs, and the corner Apple seems to be painting itself into with open-source graphics-heavy applications.
I've been a Mac mini guy for a decade, and while it's been great, there's been a clear weak spot all along, and that's been the integrated graphics. So almost half a decade ago I bought a cheap off-the-shelf midrange gaming tower with an NVidia GTX 1060 for gaming, and it's served me very well for the rendering/gaming world.
(Aside: it's the MicroPower house brand, PowerSpec, and roughly what I paid $800 for in 2016 now goes for $1200, if you can find it, thanks to the global GPU shortage. Which offically makes it a Really Good Purchase.)
Now there are two big changes in the rendering world on the Mac -- Apple Silicon's big boost of internal GPU capability, and Apple's ongoing deprecation of OpenGL *without* the corresponding and much-needed embrace of its open-graphics-consortium successor, Vulkan. Vulkan is supported on the Mac by a third-party open-source project called MoltenVK, which was open-sourced by the folks at Steam in an attempt to keep Apple from completely sawing off the cross-platform graphics limb it's currently sitting on. It's silly that such a thing should be necessary. Apple is apparently aiming for a world in which Metal and Metal alone works on a Mac, and that's a real squeeze, especially for cross-platform open source projects.
In roughest terms, as I understand it, OpenGL was designed in the one-graphics-core universe of the 1990s, and as multicore GPUs grew more and more cores, more and more of the coordination necessary to maintain a unified graphics state fell back on the CPU. Not a problem when you have only one core, or four cores, but things are different when you've got more than a thousand, and you can end up CPU-bound. Recognizing that the world had changed out from under them, the same basic coalition that created OpenGL said, time to move on, let's let GPU cores act more independently and therefore more efficiently without being as CPU-bound when it comes to coordination, and that is the key difference with Vulkan. But before they got to the finish line, Apple inexplicably pulled out of the Vulkan coalition.
Going Metal-only strikes me as a bit kamikaze of Apple when it comes to the open-source world, and only a little bit less so when it comes to cross-platform development in general.
In the meantime, "Apple Silicon ready" doesn't mean "GPU acceleration actually works."
Three of the open-source applications I use on the PC side and not the Mac side are graphics-intense enough to be a problem.
GIMP was clobbered by Big Sur and who knows when it's coming back, so I've moved to Affinity Photo.
Blender's interface is now Vulkanized, I think, and I think the real-time Eevee renderer is also Vulkanized, but the physics-based renderer Cycles isn't and won't be for a while. As I understand it, there is now a new abstraction layer built between the rendering and the rest of the application, which means that phase one -- developing the infrastructure for supporting multiple graphics APIs -- now exists and now it's on to phase two, the matter of rewriting the Cycles renderer as Cycles-X for Vulkan. It's at least a year out, I think.
I also, as a hobby, play with the 3D capabilities of the open-source game engine Godot. When Apple announced the deprecation of OpenGL, the core team recognized right away that they were at risk of losing one of the major features of Godot, its ability to create cross-platform games. They plunged into what's turned out to be a year-long graphics engine rewrite aimed at Vulkan, a project taken on personally as mission-critical by the project's lead developer, with Apple-stuff support via MoltenVK. They're approaching alpha for Godot 4, where the rewritten graphics engine will be unveiled, and the feature demos have been pretty, but again the official release is probably the most part of a year out.
I'm glad the Godot folks got a jump on it, but it's hard to overstate the work involved, all to write to a graphics API Apple doesn't even officially support. It's very frustrating to see open-source software that I use regularly and enjoy relying on a third-party project -- MoltenVK -- to do what Apple should be doing itself. I'm afraid Apple is painting itself into a corner by failing to follow the graphics world's baton as it's being passed from OpenGL to Vulkan. It looks like Apple is officially aiming for two completely disjoint sets, Apple machines running Metal, and nobody else's machines running Metal. And that's terrible news for the open-source world.
Folks, if you're doing GPU-accelerated physics-based rendering on Apple Silicon -- how are you doing it?
I've been a Mac mini guy for a decade, and while it's been great, there's been a clear weak spot all along, and that's been the integrated graphics. So almost half a decade ago I bought a cheap off-the-shelf midrange gaming tower with an NVidia GTX 1060 for gaming, and it's served me very well for the rendering/gaming world.
(Aside: it's the MicroPower house brand, PowerSpec, and roughly what I paid $800 for in 2016 now goes for $1200, if you can find it, thanks to the global GPU shortage. Which offically makes it a Really Good Purchase.)
Now there are two big changes in the rendering world on the Mac -- Apple Silicon's big boost of internal GPU capability, and Apple's ongoing deprecation of OpenGL *without* the corresponding and much-needed embrace of its open-graphics-consortium successor, Vulkan. Vulkan is supported on the Mac by a third-party open-source project called MoltenVK, which was open-sourced by the folks at Steam in an attempt to keep Apple from completely sawing off the cross-platform graphics limb it's currently sitting on. It's silly that such a thing should be necessary. Apple is apparently aiming for a world in which Metal and Metal alone works on a Mac, and that's a real squeeze, especially for cross-platform open source projects.
In roughest terms, as I understand it, OpenGL was designed in the one-graphics-core universe of the 1990s, and as multicore GPUs grew more and more cores, more and more of the coordination necessary to maintain a unified graphics state fell back on the CPU. Not a problem when you have only one core, or four cores, but things are different when you've got more than a thousand, and you can end up CPU-bound. Recognizing that the world had changed out from under them, the same basic coalition that created OpenGL said, time to move on, let's let GPU cores act more independently and therefore more efficiently without being as CPU-bound when it comes to coordination, and that is the key difference with Vulkan. But before they got to the finish line, Apple inexplicably pulled out of the Vulkan coalition.
Going Metal-only strikes me as a bit kamikaze of Apple when it comes to the open-source world, and only a little bit less so when it comes to cross-platform development in general.
In the meantime, "Apple Silicon ready" doesn't mean "GPU acceleration actually works."
Three of the open-source applications I use on the PC side and not the Mac side are graphics-intense enough to be a problem.
GIMP was clobbered by Big Sur and who knows when it's coming back, so I've moved to Affinity Photo.
Blender's interface is now Vulkanized, I think, and I think the real-time Eevee renderer is also Vulkanized, but the physics-based renderer Cycles isn't and won't be for a while. As I understand it, there is now a new abstraction layer built between the rendering and the rest of the application, which means that phase one -- developing the infrastructure for supporting multiple graphics APIs -- now exists and now it's on to phase two, the matter of rewriting the Cycles renderer as Cycles-X for Vulkan. It's at least a year out, I think.
I also, as a hobby, play with the 3D capabilities of the open-source game engine Godot. When Apple announced the deprecation of OpenGL, the core team recognized right away that they were at risk of losing one of the major features of Godot, its ability to create cross-platform games. They plunged into what's turned out to be a year-long graphics engine rewrite aimed at Vulkan, a project taken on personally as mission-critical by the project's lead developer, with Apple-stuff support via MoltenVK. They're approaching alpha for Godot 4, where the rewritten graphics engine will be unveiled, and the feature demos have been pretty, but again the official release is probably the most part of a year out.
I'm glad the Godot folks got a jump on it, but it's hard to overstate the work involved, all to write to a graphics API Apple doesn't even officially support. It's very frustrating to see open-source software that I use regularly and enjoy relying on a third-party project -- MoltenVK -- to do what Apple should be doing itself. I'm afraid Apple is painting itself into a corner by failing to follow the graphics world's baton as it's being passed from OpenGL to Vulkan. It looks like Apple is officially aiming for two completely disjoint sets, Apple machines running Metal, and nobody else's machines running Metal. And that's terrible news for the open-source world.
Folks, if you're doing GPU-accelerated physics-based rendering on Apple Silicon -- how are you doing it?