CPU rendering not using all cores on some scenes


Quick question… why? I seem to have hit a point with this scene that stops the viewport and the actual renderer in cycles from using all CPU cores.
Anything that can solve this?

This is multiple levels of semi-educated guessing, but here goes:

When doing the progressive render, I believe Cycles actually does a tiled render with 1 sample per tile, updating the screen once a full set of tiles has completed. Since your image is big and contains large gaps, some threads are stopping and waiting on others to finish the pass before they can go on.

Under the performance panel, what tile size do you have set? You generally want small tiles for CPU mode, 32x32 pixels is a good starting point. Some scenes 16x16 is even faster. Also, while you’re in there, make sure threads is actually set to auto/16. It should be, but it’s worth double-checking.

Ahhh ok. I’m a little uneducated when it comes to the internal working of cycles so thanks for that.
Currently my tiles are set to 64x64 so I’ll test out a smaller number and see where it gets me.
And yep, I’ve got it set to auto and it does show the 16 threads available.

I seem to have worked out what was going on - glass materials. Get rid of all the glass in the scene and it renders at 100% on each core. Interesting.

Glass materials are likely to take longer to render, so that probably confirms the hypothesis J_the_Ninja was describing.

Small TIP : You can also use the addon Auto tile size + enable the border from the render presets ( render only wath the camera see ) this render way faster. :wink: