Hardware specific rendering bucket size CYCLES, CPU+GPU

I’ve noticed in Blender manual that the rendering bucket size is somewhat dedicated to hardware:

But what if I’m rendering with both CPU and GPU? Should user test multiple options and pick whichever is faster for ones hardware configuration?

If yes, than I have question/proposition:
Currently bucket size is assigned to every CPU thread and GPU as a whole. But what if CPU got its own meta-bucket the same size as GPU one, then this meta-bucket would be partitioned for individual cores/threads? - see image below.
Could this benefit rendering times or its wrong idea?

As a general rule of thumb for current cycles state for CPU+GPU rendering you should use smaller bucket sizes, you can do your own test to find if this is correct, but usually 16x16 or 32x32 would be faster.
This can change in the (near) future.


I was suggesting this for a while now. The whole advantage of the CPU+GPU speed increase is gone, when the GPU has finished and the rendering is stuck on some slower CPU buckets at that point. Especially when it’s a tricky area with lots of samples. It would be great if the GPU could assist or take over the CPU buckets at the end. I guess using your meta-bucket system might work as well.

1 Like