2024 Macbook Pro M4MAX (16-core/40 core gpu) Benchmarks and Rendering Questions

Hello, new member here!

I was wondering if anyone has the new 2024 Macbook Pro M4 MAX (16 CPU, 40 GPU) running Blender 4.3 LT; if anyone has done their own benchmarks compared to their own projects on previous machines rather then the classic benchmark projects provided?

I’ve noticed ive been getting some inconsistent render times compared to a project i first loaded when purchased the new M4 Max. I got around a 700% efficiency boost compared to the 2080ti rig I use on the same project (2080ti, i9 = i.e 3840x2160, 15 minute per frame, PNG 16BIT RBG, 40% compression) compared to (M4Max = i.e 3840x2160, 2:24 per frame, PNG, 16 BIT, RBG, 45% compression, with 3D Curves instead of ribbons).

Now with my current projects, that definitely don’t feature complex geometry nodes compared to other one I mentioned, I’m getting 2:36 average frame, same settings with less lights at ; animation; assets; textures; etc. I would assume this machine should render at seconds compared to a less complicated scene.

Im new to the realm of iOS Blender rendering and im wondering if there is anything im missing?

Yes, in system preferences I have MetalRT enabled, Kernel Enabled, and selected only my GPU; also on the rendering settings, I have set compositor to GPU.

Any input, criticism, and references would be greatly appreciated. Thank you

Welcome!

I don’t have your setup, but I might have some relevant information.

In Cycles, the complexity of a render is much more affected by the shaders and the position of the lighting than the polygon count.

In fact, Cycles is surprisingly resistant to high polygon counts. But make an interior scene and have a thin ray of sunlight fall on the floor, and you get massive amounts of noise, because that’s a complex lighting scenario.

This empty room might take longer to render than a 1 million polygon exterior scene.

Here are a few things that Cycles fears:

  • Scenes lit mostly with bounce light, especially if it comes from a small patch of light. Cycles has no way of knowing that small patch of light exists, so it’s going to take a crazy number of samples until it gets properly sampled by chance. This is helped by path guiding, but that’s only available on CPU for now.

  • Point lights hidden in deep holes. Cycles will waste massive amounts of rays trying to sample those through the walls and failing to find the light.

  • Light emitted from meshes or worse, complex volumes (fire). Those are harder to sample and noisier than light objects.

  • Large numbers of transparent layers in front of each other. This includes both refraction and alpha transparency. A ray that goes through that will loose massive amounts of time detecting every layer on its path. A forest made from high poly instanced trees with no transparent materials (fully polygonal leaves) will render faster than videogame style trees with transparent leaves textures.

  • Volumes, especially if their step rate is low (high quality). Volumes are just inherently performance heavy.

  • Reflections of reflections, especially if they are semi-rough. That’s going to be noisy and need lots of samples to clear.

  • Interior scenes are much slower than outdoor scenes. In outdoors, most rays of light will escape to the sky and successfully light the scene. You don’t get that indoor, light bounces repeatedly and isn’t guaranteed to find a useful path.

That used to be the case, but nowadays I tend to not be as fearful of mesh lights as before. It probably depends on the situation at hand, so I recommend trying out both area lamps and emissive meshes and check which one produce the least amount of noise. For the test, turn off all other light sources.

Now I mostly use area lamps just to get some initial lights in there, before I put actual models in there. Note that the light meshes still have to be optimized, not super accurate with filaments inside glass and so on, just make the glass emissive instead. Some downloaded assets are absolute garbage wrt being optimized for actual use, but look great then they’re turned off only reacting to daylight.

1 Like

That depends. If i render an outdoor scene and then an indoor scene with the same settings, like 1000 samples, the indoor scene renders a lot faster. But to get a comparable quality i need to use 2000 samples for the indoor scene, which makes it render slower.

Well, its a laptop. So whenever the Macbook (and the MacMini too) runs at full speed it gets hotter, thats why Apple is regulating the CPU and GPU down a bit, until the temperatur is okay again. That doesn’t happen with a desktop Mac like the Mac Studio, because it has a better ventilation inside and nice big fans.

Mesh lights aren’t as bad as they used to be, but they still are a bit noisier than light objects. Do you actually have a scene where a mesh light was cleaner? Here is a direct comparison with the same render settings in the simplest scene possible.


What kind of outdoor scene did you have that it took longer than an interior? I imagine it must have had lots of vegetation? Because if you take an interior scene and just remove the ceiling to expose the sky, it’s probably going to be faster and less noisy.

As an example look at this project :

Lots of vegetation, but that vegetation is also visible in the interior renderings. Rendering of the interiors is slightly faster despite rendering with twice as many samples (1000 for exteriors, 2000 for interiors), because the room is limiting the bounces … i guess.

I see, the slower performance there is probably caused by transparency. I imagine a lot of those plants have alpha transparency for their leaves? If that is the case, you will get a massive slowdown in Cycles. When a light ray has to cross multiple layers of transparency, it has to collide with each of them on the way and that takes time. If you were to go into your materials and disable the transparency, you would likely see a huge difference (of course, you would plan your vegetation not to use transparency from the start in an actual case).

Interior scenes usually have more light bounces, because the light rays have no sky they can escape to. In an outdoor scene, a lot of light rays will immediately go for the sky and never bounce at all.

Interesting, does that mean that Cycles has no real clip-mapping and uses transpareny instead?

If I understand what I just searched, clip-mapping is a technique that is used for mip-mapped textures. Blender doesn’t support mip-mapping, that’s a known flaw of the software.

But anyway, this isn’t even relevant here because even multiple layers of un-textured transparent materials will cause this slowdown, the geometry is much more at fault than the texture.

To know that a polygon is transparent, Cycles has to collide a ray with it first, just like for a solid surface. Then, the ray realizes it has found a transparent shader and re-creates a new ray on the other side of the face. So, each interaction between a ray and transparent surface counts as a bounce, that’s why there is a setting for “transparent bounces” in the render settings. This is sadly the fastest way to do it in a renderer that uses both rays and polygons.

Eevee doesn’t suffer the same performance drop from transparency, because it’s a rasterizer, a renderer that directly turns each polygon into pixels on screen one by one. It would draw each polygon anyway no matter if they are transparent or not.

In Cycles, a 1 million triangle tree with fully modeled but solid leaves will probably render faster than a 10 000 triangle tree with alpha transparency branches. The best way to do plants in Cycles is often to have a handful of very heavy models and to instance them to the scene so it fits in memory. And if you must use transparency, you can speed it up by chiseling the empty transparent areas so the geometry is as close to the texture as possible, that will make a ray less likely to have to go through many layers of it.

Yes, but I wouldn’t be able to find it or reproduce it on demand, or even have time to mess around with it right now. It wasn’t a particularly simple scene.

Another consideration is what options do you have available as a lamp light (light output) compared to an emissive geometry shader (material output)? There are light path tricks I can’t make work with lamps.

1 Like