diff options
author | Jagannadhan Ravi <easythrees> | 2020-10-21 17:38:36 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2020-10-21 19:54:12 +0300 |
commit | bb49aa0d6978c2194de7835a0531f2cecd849372 (patch) | |
tree | b3908d381c37966b13c0dfcd32553149048c7e83 /intern/cycles/blender/blender_sync.h | |
parent | b5803c0a241f043994a01e9f354c84bb0c2fce94 (diff) |
Cycles: multithreaded export of geometry
This improves performance in scene synchronization when there are many
mesh, hair and volume objects. Sync time speedups in benchmarks:
barbershop 5.2x
bmw 1.3x
fishycat 1.5x
koro 1.0x
sponza 3.0x
victor 1.4x
wdas_cloud 0.9x
Implementation by Nicolas Lelong, and Jagannadhan Ravi (AMD).
Differential Revision: https://developer.blender.org/D9258
Diffstat (limited to 'intern/cycles/blender/blender_sync.h')
-rw-r--r-- | intern/cycles/blender/blender_sync.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h index 62fd1ac2351..a17db128957 100644 --- a/intern/cycles/blender/blender_sync.h +++ b/intern/cycles/blender/blender_sync.h @@ -50,6 +50,7 @@ class ViewLayer; class Shader; class ShaderGraph; class ShaderNode; +class TaskPool; class BlenderSync { public: @@ -145,7 +146,8 @@ class BlenderSync { bool use_particle_hair, bool show_lights, BlenderObjectCulling &culling, - bool *use_portal); + bool *use_portal, + TaskPool *geom_task_pool); /* Volume */ void sync_volume(BL::Object &b_ob, Volume *volume, const vector<Shader *> &used_shaders); @@ -177,12 +179,15 @@ class BlenderSync { BL::Object &b_ob, BL::Object &b_ob_instance, bool object_updated, - bool use_particle_hair); + bool use_particle_hair, + TaskPool *task_pool); + void sync_geometry_motion(BL::Depsgraph &b_depsgraph, BL::Object &b_ob, Object *object, float motion_time, - bool use_particle_hair); + bool use_particle_hair, + TaskPool *task_pool); /* Light */ void sync_light(BL::Object &b_parent, |