The slowdown was caused by the volume step calculation returning an infinite value. This was caused by the calculation happening before the object bounds are calculated via the code path which does some early update for the displacement and hair transparency. The actual value was never re-calculated after bounds are valid. The solution is to only clear need-update after the final call of the device_update_flags(). Pull Request: https://projects.blender.org/blender/blender/pulls/121042