Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJagannadhan Ravi <easythrees>2020-10-21 17:38:36 +0300
committerBrecht Van Lommel <brecht@blender.org>2020-10-21 19:54:12 +0300
commitbb49aa0d6978c2194de7835a0531f2cecd849372 (patch)
treeb3908d381c37966b13c0dfcd32553149048c7e83 /intern/cycles/blender/blender_sync.h
parentb5803c0a241f043994a01e9f354c84bb0c2fce94 (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.h11
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,