Mac: M3 - *Hardware accelerated RT (Part 1)

I think you guys are misunderstanding how low level api’s work. Think python vs. C++

If you aren’t going to take advantage of what Vulkan has to offer. Whether you need it or not, then you’re overall just burdening yourself. Specifically if you don’t need the advantages, then you’re just adding on to the development time needed.

Say you need a small program doing some menial task. Say that program took 500 lines in Python and 500ms to execute. Would you still want to make it in C++, even if it in contrast required 5000 lines, but instead took 300ms to execute? Even though you just gain 200ms at the cost of 4500 lines?

When you’re using Vulcan, you have absolute control over anything, and while that has benefits for performance, you have to handle quite a few things yourself as well, resulting in more code and more complexity

The triangle is definitely a niche example, no-one uses Vulcan to draw a triangle, but I imagine vulkan is still much harder to program than openGL, especially for something as complex as blender

I don’t have much experience with Vulcan on 3d applications (I only do 2d work), but if someone here has that experience they would be a better source than me on the specific topic of blender

In your example, if you were running the script thousands of times a day then that tiny saving begins to add up.

If they are trying to push higher polygon counts in the viewport or lower render times the increase in code complexity maybe necessary to make the performance gains.

Yup, which is why its awesome the blender foundation is doing this. I’m just mentioning that Vulkan/opengl/metal isn’t always the best solution, it always depends on the use case

Pixologic be like “CPU is the best solution!” :stuck_out_tongue_winking_eye:

1 Like

I understood it in a way that,
using some OpenGL in n App was accessible for typical developers.
Nearly similar for DirectX, for advanced developers.
But Vulkan pretty raw and mostly only manageable for real experts.

And I thought Apples APIs make Metal also manageable for more
average developers. That the API offers the calls to use in code
and Apple does large parts of the work behind the scenes.
Like automatically assigning the work to the correct type of core
(ML, CPU, GPU, …) and such things.

Both apple and Vulkan do what you’re saying (i.e. handle certain calls and manage threads etc), but since they’re also low-level, you do have to do some things manually

DirectX (in my humble opinion) is better than Vulkan, but still not as easy as openGL. It also doesn’t have as good performance as Vulkan but it strikes a good balance between the two

You don’t need to be an expert to do Vulkan, its harder than OpenGL but not by too much, its just that it takes work

The closer you can get to the metal (that is the intimate workings of the hardware itself), the more opportunities you have to tune your program for performance and the more possibilities you have in general. This is because you have less abstraction layers to deal with and less bloat in general.

Vulkan has the potential to bring significantly better performance to Eevee as well as shading/lighting techniques that cannot be done with more abstraction baked in (ie. OpenGL). The tradeoff is that it takes a lot longer to get a program to the point where it is doing something useful, and as such it is more difficult in general.


To go super low-level on things have been done before in the game industry, ever wonder how Roller Coaster Tycoon could simulate 1000’s of guests on late 90’s Pentium chips for instance? Doom 3 also went all the way down to Assembly (in cases) to create hyper-optimized code for certain functions (which otherwise could not be done in a way that keeps 60 frames per second).

What I wanted to say was that I believe that Apple made Metal
much easier to profit from bare metal by its APIs than other solutions.

I think OpenGL would be still more than adequate for complex 3D and
CAD Apps. (Maybe not for Render Engines and Games)
OpenGL got a lot of low level options in latest releases to be fast where
necessary. Which can also be seen in many OpenGL vs Metal
Benchmarks.
There are so many OpenGL tasks in 3D that aren’t that speed important,
like drawing Full Screen Cursors or Palette Windows above a 3D
Viewport and such things. Some even exist in earlier OpenGL versions
only.

The Problem with OpenGL on Apple was, that when Apple updated
OpenGL on Developers wish, they have chosen (as expected),
the newer OpenGL version - but without the legacy options - for older
functions.
So no complex 3D App upgraded to Apples newest OpenGL
Implementation, needing to rewrite large parts of their code that
still uses all these legacy functions, which were totally OK BTW.

So all these 3D Apps on Mac stuck with OpenGL 2.x (?) and had
no access to the newer bare metal OpenGL accelerations of
the current OpenGL versions.

WWDC is nearing. I can’t wait. Please release official support soon Blender.

2 Likes

Any of my non M1 Mac users (or Windows) want to try out the Rain animation file and give me an idea of your playback frame rate? I never got to try out this file with my 2017 iMac (i7 w/ RX580)
I have a feeling my M1 would best it like it was doing before I traded it in.
You can close the left viewport… I never animate with two viewports active.

I’m using the latest official ARM64 build.

Thanks!

My M1 Mini is hitting 43 fps in solid view, and 26 fps in Look Dev. (15 minute plus loop in Look Dev. and the fans haven’t kicked on yet). :stuck_out_tongue:

My Dell (Ryzen 7 4800) at the same price point is hitting 23 fps in solid, and 9 fps in Look Dev. (Fans kicked on to max pretty quickly).

2 Likes

I saw ~13FPS in solid, lookdev, and Eevee rendered. Likely, my old i5 Haswell is acting as a bottleneck here.

edit: removing the left viewport boosted me up to 22 FPS in solid, and 14 FPS in rendered.

1 Like

I got something similar with an old i7 3930k and rtx 2070. With scene loaded as it is.

1 Like

Strange, considering you have both a faster CPU, and a GPU that trounces my old 970.

Have anyone tried this? How is it working? Or other render engine? Like redshift? Also got M1 in experimental version

For reference against my 10yr old dual Xeon x5675’s + GTX780 potato PC I ran the animation test:

Averaging 16fps solid, 11fps material preview, 10fps rendered, using Blender 2.92 all settings at installation defaults. <Edit: not tested at 4k resolution>

I don’t do animation in Blender so I’ve no idea if this is good or bad but it might give someone a useful baseline for how technology has developed over the last decade or so.

I’m certainly following the Apple SOC developments with interest.

2 Likes

Sorry, forgot to add that I tested on 1080p monitors.
Instead of hooking the laptop up to my 4K (4096x2160) screen I normally use with my mini, like I did in my YouTube comparison, I used the Dell’s native 1080p screen and hooked another 1080 to my Mac mini.

Knock 5 to 8 frames off of my M1 scores if using 4K monitor, and about 15 off if using 4K with the Dell.

Have anyone been able to get to use cycle x in m1 and is willing to share your experience? Much appreciated

I did but I did not really check times for renders.

Did try a few things, saw that volume shaders and other things do not work so I deleted it again.

I wish they would update the beta arm build.

Made an account just to log in and say I’m getting 24fps in solid, 16fps in Look Dev and Eevee using my nVidia 3070 + (ageing but great for it’s time) i7-6800k + 1440p monitor.

M1 is insane!

1 Like

woot updated ARM builds and even a Blender 3 arm version :slight_smile:

5 Likes