Page MenuHome

Heavy instancing cause Cycles hardware utilization drop to a fraction because of "Updating Camera Volume"
Open, NormalPublic

Description

System Information
Windows 10, GTX1080Ti

Blender Version
Broken: 2.79 latest master
Worked: probably never

Short description of error
Cycles performance and hardware utilization degrades severely with heavy instancing (I have tried to utilize particle system to generate forest covered mountains). The culprit of the poor utilization seems to be a process described as "Updating Camera Volume" on which most of the time in rendered viewport mode is spent, resulting in usages between 20-30% in both CPU and GPU mode.

It happens only in "rendered" viewport mode, not in the final frame render mode. In final frame render mode, "Updating Camera Volume" is not part of process, hardware utilization seems correct and so does the performance.

Exact steps for others to reproduce the error
1, Open the attached blend file:


2, Switch the viewport mode to rendered
3, Observe poor performance, poor interactivity and low hardware utilization.
4, Switch viewport mode back to shaded and launch final frame rendering (F12 key)
5, Observe proper performance and full hardware utilization

Result: Cycles' performance and hardware utilization reduces drastically with growing amount of instances in rendered viewport mode

Expected; Cycles' performance and hardware utilization is consistently good between viewport and final frame mode regardless of instance count.

Details

Type
Bug

Event Timeline

Bastien Montagne (mont29) triaged this task as Normal priority.

That does not really sounds like a bug to me, but will let @Brecht Van Lommel (brecht) decide here.

That does not really sounds like a bug to me, but will let @Brecht Van Lommel (brecht) decide here.

I am sure it is, due to four reasons:

1, There is no other path tracer out there that slows down so drastically with growing amount of instances.

2, There is no other path tracer out there where hardware utilization drops to as low as 1/3rd with as little as 1 million instances.

3, The poor performance and utilization happens only in viewport render mode, not in final frame render mode, so cycles is capable of performing well and utilizing hardware fully.

4, The status message says "Updating Camera Volume" which implies there is some inefficient way of calculating global volume boundaries, which is all the more confusing given that the scene does not use any global volume shader at all, so there's no reason to compute it in the first place.