Is there interest in supporting a Metal version of Cycles for MacOS?

Count me as another Devoted Mac/Blender fan, even though windows has advantages over Mac.
I hope that there is a strong call for MacOS developers coming.

3 Likes

Wow. I can’t wait for some of these technologies’ implementation.

1 Like

What is the most appropriate way to voice support after joining the fund? Thanks.

2 Likes

Mainly the user feedback forum here and right click select:
https://wiki.blender.org/wiki/Communication/Contact#User_Feedback_and_Requests

Or just reply in a relevant topic like this one.

1 Like

Hello,

Just chipping in as I did a bit of research awhile back about either using AMD HIP or bringing Vulkan into Cycles (as an eventual bridge to something like the RTX extensions or any future raytrace-related Vulkan stuff), but not so much Metal as I don’t use macOS.

@brecht mentions that pointer support is a concern, there are extensions to Vulkan itself which brings this:

  • SPV_KHR_variable_pointers - to enable the support of more expressive pointers that the OpenCL C language can make use of.
  • SPV_KHR_storage_buffer_storage_class - required by SPV_KHR_variable_pointers , to enable use of the StorageBuffer storage class.

(information copied from this link)

This is just my opinion, but I think it would be preferred to support Vulkan over Metal, using something like MoltenVK for Metal access. For that to happen I’d assume spirv-cross would need to be upgraded to support those 2 extensions to the Metal equivalents, perhaps this is already covered though I’m not sure.

I’d like to develop this but I am currently time poor, but I thought I’d just put this information here to help anyone research on how to progress on this. Perhaps the link above “clspv” could be tested as an OpenCL backend and things “just work” with the Cycles codebase already unmodified!

Yes, we’re aware of these extensions and implementations for Vulkan. Unfortunately nothing seems complete enough to build on yet, and to take advantage of RTX ray tracing extensions would probably take work beyond those.

Even something that in theory supports all the features we need will take some time to mature. NVIDIA CUDA and AMD OpenCL compiler implementations have taken quite a while to mature and be able to handle the more complex kernels that you get for ray tracing, even if on paper you’d expect things to work.

We can expect some support from these companies, as other renderers are doing things quite similar to us. But we’d be unlikely to get much help from Google to make clspv work well for our use case.

1 Like

Hello,
I am a mac user and I know a lot of others who work in 2d graphics, video, stage design industry, who I would like to teach blender to. I would like blender to have better GPU integration within Mac OS. Is this a pure financial issue or Metal/Molten VK are not advanced enough/right stuff for Blender?

Would Blender Foundation have to pay to Apple for using Metal?

If its only money issue, let’s create a special code quest for this cause. If every Mac user chipped in one month worh of 3ds Max subscription, this problem could be at least worked on.

It would be great to have a special meet up at Blendercon to discuss Blender and Mac integration.

2 Likes

It’s a matter of funding and priorities for what the work on in Cycles and Blender as a whole. There is no problem using Metal except that it would have been easier for us if Apple supported open standards better.

I would totally chip in some money to have some work on metal cycles renderer!

3 Likes

It seems like the most graceful way to get Metal/macOS support back in for cycles is to have Apple fund the developer themselves.

They’re certainly not hard up for money or staff and, there is a rather well-traveled path for other companies doing this with the BF at this point.

I’m not sure where in their org someone goes to propose such things but, it’s an easy win for Apple as far as investments go. Blender’s objectives are nicely in sync with Apple’s philanthropic mission statements about education. The project would allow for good documentary pr for porting existing compute workloads over to metal and, the result would be a useful reference implementation for migrating compute workloads to metal.

Considering Ton’s and his team’s impressive track record for wooing backers, I would be very surprised if Apple has not already been courted for this.

5 Likes

This is true! We should try to attract some macOS users’ attention to show Apple there are people that care. And then we should try to contact Apple. I wonder how though.

2 Likes

I agree, Blender courses would be ideal for their Today at Apple sessions. 0 entry barrier to get into the magnificent ecosystem. Apple & AMD could provide another million-heavy epic grant.

2 Likes

Contact Apple for what an outdated piece of technology that was on its way out anyway which are responsible for its once upon a time popularity ? Even the people behind the creation of OpenGL have abandoned it for Vulkan for over 2 years now.

Ton mentioned on the Blender Today stream that Blender has already a hired developer working on moving to Vulkan, the same developer that brought barely known feature of 2.8 , you may have heard of it , its called “EEVEE” , so the boat has already sailed. It won’t be easy , it won’t be tomorrow but its the right direction.

Funding is also not an issue because on this department Blender has been very successful so far with reaching around 70k euros per month and on its way of reaching the latest goal of 100k for hiring 20 developers.

We also should not forget that one of the major sponsors of Blender is both EPIC and Steam/Valve both have embraced Vulkan completely . EPIC through Unreal offers support both for Vulkan and Metal and Steam was responsible for MoltenVK which allow Vulkan to run on top of Metal which is what their top selling game DOTA 2 utilizes to run on latest version of MacOS. I think its obvious that Mac support is far more than a huge deal for Blender.

They only thing needed now is patience , the will is there, the funding is there but there is still a lot of work that will be needed to be done because moving Blender to Vulkan will be a huge amount of work. Huge as one dev probably won’t be enough.

Of course the question remain whether Blender should support Metal as well, as a mac user myself I think sticking with just Vulkan will be the best decision. MoltenVK has shown a lot of promise performance wise and Vulkan is still a moving target so there is still a lot of room for optimization. Vulkan also fits with the open source nature of Blender much more so it makes sense to not support Metal at all. Because MoltenVK is already supported by big companies personally I think its the future and I won’t be surprised if Apple drop Metal for Vulkan or unite the 2 APIs to be highly compatible.

Apple has seen massive success with the blunders of Windows Vista and of course the success of iPhone have brought MacOS from a mere 3.5% once upon a time , which according to Steve Jobs was the best the company could ever have hoped for, to 10-15% market share. So MacOS is no longer a platform companies can afford to ignore and neither can Blender if it wants to see its funding campaign expanding fast. It stands to reason that Mac support is absolutely crucial for a 3d app that is targeting 3d artists where macos is even more popular.

3 Likes

This topic is specifically about Cycles GPU rendering on macOS, for which there is currently no developer or enough funding to prioritize it over other projects that users are asking for. The Vulkan port of Eevee and the viewport is a separate thing.

1 Like

good point @brecht I stand corrected. I forgot the Cycles part because if I remember correctly I also participated in a similar discussion on blenderartists which was more general.

I meant to say that we should contact apple if we were in need for funds to make a cycles also able to run on metal. But since you said they are in the works to port Vulkan to cycles and vulkan can run in metal without too many performance sacrifices, i find it not useful anymore to do so.

1 Like

as @brecht corrected me, its not Cycles related, its actually only for EEVEE. Cycles is trickier because it depends on things like Cuda and OpenCL which is outside the realm of OpenGL. I am not sure how Vulkan can help there, I have read that there is plan for some similar APIs but probably is too early to talk about Cycles running on top of Vulkan completely.

Saying that, I would be suprised if Vulkan does not address these areas too or at least some other open source API. Of course that may translate to years. There is already Vulkan compute which is somewhat similar to CUDA but no actual replacement for it.

1 Like

how apple is going to justify this kind of application not working on its platform (GPU Renderes)?

GPU renderes use opencl or cuda. Macs dont ship with a Nividia card, do they? are they counting on external driver to handle opencl and cuda support?

1 Like

The point of this post was to discuss a gpu renderer not based on CUDA or OpenCL but based on Metal (Or MoltenVK) to support fast macOS gpu render.

1 Like

Apple’s Metal framework includes ray tracing acceleration now, similar to RTX, so it’s not like you cannot write a hardware accelerated ray tracer on Mac.

2 Likes