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

Let’s keep this thread on the topic of Cycles, for updates on the ProRender you can go to the AMD forum.

I’m just a normal macOS Blender user and beta tester for Pro Render on macOS.

Is there a plan for Metal support in Cycles for macOS? Obviously not for Blender 2.80 release but how soon afterwards might there be some plan announced?

With no Cycles GPU rendering support on macOS at all now Pro Render is needed and lots of people don’t know about it.

I agree this is the wrong forum but people do ask questions about macOS GPU rendering and they deserve pointing to it.

Great job with Blender 2.80 it really is amazing. Thank you.

If you are looking for an answer, read the second and forth replies in this thread.

There are no signs at this point that a developer for the MacOS appeared. If this is true, it would be naive to even announce a plan.

At this point, they even have to look actively for Mac developers:
https://lists.blender.org/pipermail/bf-committers/2019-May/049981.html

That is sad indeed. There are a lot of macOS Blender users out there.

Apple didn’t even put up the Pro Render logo on their WWDC keynote despite using it in their new Mac Pro Benchmarks (via C4D). That was a bit harsh and must be a bit upsetting for all concerned. With Apple’s continuing support of AMD’s excellent hardware it did seem out of place to skip it.

Apple could and should put a Mac in Blender Foundation and could definitely afford to get them a Metal engineer. I hope it is resolved soon. I really do.

It is definitely worth trying Pro Render and I’ve had scores of bugs fixed by submitting them to the AMD community site. That’s my Blender hobby / focus. Helping to get Pro Render usable on AMD eGPUs on macOS. I’ll do the same for Cycles on Metal when it happens.

3 Likes

Ok, so please could you give us information regarding Cycles Metal version status?

It’s not being worked on, there are other priorities for Cycles development.

That is not good news but thank you for the info. Cycles is the best renderer for Blender. Unfortunately it seems we, Mac users, have to look for the alternative. ProRender looks promising. It seems there’ll be Metal Redshift and Octane also. Is the use of these words prohibited or unwelcome on Blender Dev forum?

Of course it’s not prohibited. But this forum is meant for organizing Blender and Cycles development, it’s not a user forum to discuss Blender or CG software in general, it’s for communication with and between Blender developers.

I understand but if from your perspective Cycles Metal is not important then this topic practically no existent. So what the difference? For Mac users it is place to trying to find some way out. Who knows - maybe there’ll be someone to create Cycles Metal. I personally would be happy to pay e.g. $500 for Cycles Metal…

The reason we want things to stay on topic, is because we don’t want developers to spend time moderating and managing a general user forum, their time is better spent developing Blender. One topic does not make a big difference, but we want to be clear about the guidelines for this forum.

The best way to get Metal into Cycles is to join the Blender development fund and voice your support for it, so we can hire developers to work on Cycles.

2 Likes

Did you mean “join the Blender development fund”?

1 Like

Ah yes, that’s what I meant.

Apologies for fueling this thread. Apple released a week or 2 ago an update to their Metal framework with some interesting features that might be relevant to raytracing and rendering technologies.
http://metalkit.org/2019/06/10/introducing-metal-3.html

Quoting here:

Numbers

  • Metal can now make 100 times more draw calls than OpenGL.
  • Metal runs on roughly 1.4 billion devices currently.
  • Metal can drive up to 56 TFLOPS of single precision.

Ray Tracing Compute

Last year when the Metal Performance Shaders (MPS) APIs for Ray Tracing were introduced, the calculation of ray-triangle intersections was moved on to the GPU, making Ray Tracing in Metal really appealing for the first time. This year, two other costly and important stages were moved on to the GPU as well: the acceleration structure and the image denoising.
The Acceleration Structure is updated through a process called refitting which does not rebuild the acceleration structure from scratch but rather moves the bounding boxes to where the geometry moved, thus saving precious processing time. Refitting is now done entirely on the GPU:


The Image Denoising is cleverly aided by an image processing based denoising filter. The idea behind it is to store normals and depth information each frame, and then compare them with the next frame to see if certain pixels got invalidated. This could happen if the object moved to a different location or if another object occluded it.
The new MPSSVGF classes are implementing the Spatiotemporal Variance-Guided Filtering denoising algorithm. Denoising is now up to 1000x faster on GPU than it would take on the CPU.

3 Likes

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