de16ed4e8cd5aabdc4fbd63fdd0b06dd0d497b12
When a Cycles render is uneven (E.g. a small portion of the image takes significantly longer to render than the rest of the image), then GPUs typically suffer from poor performance due to low occupancy unless a large number of samples is scheduled to compensate for that small complex region. Due to how Cycles render scheduler is setup, Cycles tries to increase GPU occupancy by increasing the number of scheduled samples, but also balance render preview update time by scaling back the number of scheduled samples based on the previous workloads time per sample to try and fit within the target update time. However using the previous workloads time per sample to scale back the scheduled number of samples gives suboptimal results because the previous workloads time per sample is usually not representative of the new time per sample that occurs as GPU occupancy increases, because increasing GPU occupancy typically results in reduced time per samples. This commit improves on this issue by assuming that increasing GPU occupancy linearly improves performance, and adjusts the function that scales back the sample count to fit within a specific update window to use this assumption. This leads to Cycles increasing the amount of work scheduled onto the GPU quicker at the beginning of uneven/low occupancy scenes, generally leading to improved performance, especially when rendering at low sample counts or with strict time limits. Ref #147954 Pull Request: https://projects.blender.org/blender/blender/pulls/147950
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
