diff options
21 files changed, 52 insertions, 29 deletions
diff --git a/source/blender/blenkernel/BKE_global.h b/source/blender/blenkernel/BKE_global.h index 80a8f750d20..78d8271458d 100644 --- a/source/blender/blenkernel/BKE_global.h +++ b/source/blender/blenkernel/BKE_global.h @@ -122,13 +122,16 @@ enum { G_DEBUG_WM = (1 << 5), /* operator, undo */ G_DEBUG_JOBS = (1 << 6), /* jobs time profiling */ G_DEBUG_FREESTYLE = (1 << 7), /* freestyle messages */ - G_DEBUG_DEPSGRAPH = (1 << 8), /* depsgraph messages */ - G_DEBUG_SIMDATA = (1 << 9), /* sim debug data display */ - G_DEBUG_GPU_MEM = (1 << 10), /* gpu memory in status bar */ + G_DEBUG_DEPSGRAPH_BUILD = (1 << 8), /* depsgraph construction messages */ + G_DEBUG_DEPSGRAPH_EVAL = (1 << 9), /* depsgraph evaluation messages */ + G_DEBUG_DEPSGRAPH_TAG = (1 << 10), /* depsgraph tagging messages */ G_DEBUG_DEPSGRAPH_NO_THREADS = (1 << 11), /* single threaded depsgraph */ - G_DEBUG_GPU = (1 << 12), /* gpu debug */ + G_DEBUG_DEPSGRAPH = (G_DEBUG_DEPSGRAPH_BUILD | G_DEBUG_DEPSGRAPH_EVAL | G_DEBUG_DEPSGRAPH_TAG), + G_DEBUG_SIMDATA = (1 << 12), /* sim debug data display */ + G_DEBUG_GPU_MEM = (1 << 13), /* gpu memory in status bar */ + G_DEBUG_GPU = (1 << 14), /* gpu debug */ G_DEBUG_IO = (1 << 13), /* IO Debugging (for Collada, ...)*/ - G_DEBUG_GPU_SHADERS = (1 << 14), /* GLSL shaders */ + G_DEBUG_GPU_SHADERS = (1 << 15), /* GLSL shaders */ }; #define G_DEBUG_ALL (G_DEBUG | G_DEBUG_FFMPEG | G_DEBUG_PYTHON | G_DEBUG_EVENTS | G_DEBUG_WM | G_DEBUG_JOBS | \ diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index 844a2a50bb3..631d3743970 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -2879,7 +2879,7 @@ void BKE_animsys_evaluate_all_animation(Main *main, Scene *scene, float ctime) /* ************** */ /* Evaluation API */ -#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH) printf +#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) printf void BKE_animsys_eval_animdata(const EvaluationContext *eval_ctx, ID *id) { diff --git a/source/blender/blenkernel/intern/armature_update.c b/source/blender/blenkernel/intern/armature_update.c index de0dfe2530d..203dcbf247c 100644 --- a/source/blender/blenkernel/intern/armature_update.c +++ b/source/blender/blenkernel/intern/armature_update.c @@ -50,7 +50,7 @@ #include "BKE_global.h" #include "BKE_main.h" -#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH) printf +#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) printf /* ********************** SPLINE IK SOLVER ******************* */ diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index 2a27bad0fb5..b5ad2bcef4e 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -5258,7 +5258,7 @@ void BKE_curve_rect_from_textbox(const struct Curve *cu, const struct TextBox *t void BKE_curve_eval_geometry(const EvaluationContext *UNUSED(eval_ctx), Curve *curve) { - if (G.debug & G_DEBUG_DEPSGRAPH) { + if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) { printf("%s on %s\n", __func__, curve->id.name); } if (curve->bb == NULL || (curve->bb->flag & BOUNDBOX_DIRTY)) { diff --git a/source/blender/blenkernel/intern/group.c b/source/blender/blenkernel/intern/group.c index c615f67fe42..8fa8da8b0ca 100644 --- a/source/blender/blenkernel/intern/group.c +++ b/source/blender/blenkernel/intern/group.c @@ -55,7 +55,7 @@ #include "BKE_object.h" #include "BKE_scene.h" -#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH) printf +#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) printf /** Free (or release) any data used by this group (does not free the group itself). */ void BKE_group_free(Group *group) diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c index 8e7b7f5456b..82ac666c46b 100644 --- a/source/blender/blenkernel/intern/layer.c +++ b/source/blender/blenkernel/intern/layer.c @@ -57,7 +57,7 @@ #include "MEM_guardedalloc.h" -#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH) printf +#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) printf /* prototype */ struct EngineSettingsCB_Type; diff --git a/source/blender/blenkernel/intern/mask_evaluate.c b/source/blender/blenkernel/intern/mask_evaluate.c index f60d87f2464..841008d1acc 100644 --- a/source/blender/blenkernel/intern/mask_evaluate.c +++ b/source/blender/blenkernel/intern/mask_evaluate.c @@ -898,7 +898,7 @@ void BKE_mask_layer_evaluate_deform(MaskLayer *masklay, const float ctime) } } -#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH) printf +#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) printf void BKE_mask_eval_animation(struct EvaluationContext *eval_ctx, Mask *mask) { diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 7235aa0aaf6..0117cfcc022 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -1772,7 +1772,7 @@ bool BKE_object_material_edit_image_set(Object *ob, short mat_nr, Image *image) void BKE_material_eval(const struct EvaluationContext *UNUSED(eval_ctx), Material *material) { - if (G.debug & G_DEBUG_DEPSGRAPH) { + if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) { printf("%s on %s (%p)\n", __func__, material->id.name, material); } if ((BLI_listbase_is_empty(&material->gpumaterial) == false)) { diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index d3c74f71f78..d1b8920d612 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -2667,7 +2667,7 @@ Mesh *BKE_mesh_new_from_object( void BKE_mesh_eval_geometry(const EvaluationContext *UNUSED(eval_ctx), Mesh *mesh) { - if (G.debug & G_DEBUG_DEPSGRAPH) { + if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) { printf("%s on %s\n", __func__, mesh->id.name); } if (mesh->bb == NULL || (mesh->bb->flag & BOUNDBOX_DIRTY)) { diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c index a416de07c6d..f67560fe006 100644 --- a/source/blender/blenkernel/intern/movieclip.c +++ b/source/blender/blenkernel/intern/movieclip.c @@ -77,7 +77,7 @@ # include "intern/openexr/openexr_multi.h" #endif -#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH) printf +#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) printf /*********************** movieclip buffer loaders *************************/ diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index c2d74739beb..97a26b23c17 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -3870,7 +3870,7 @@ void BKE_nodetree_shading_params_eval(const struct EvaluationContext *UNUSED(eva bNodeTree *ntree_dst, const bNodeTree *ntree_src) { - if (G.debug & G_DEBUG_DEPSGRAPH) { + if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) { printf("%s on %s (%p)\n", __func__, ntree_src->id.name, ntree_dst); } BKE_nodetree_copy_default_values(ntree_dst, ntree_src); diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index a0d2e7d76c8..3e577e58ae3 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -2770,7 +2770,7 @@ void BKE_object_handle_update_ex(const EvaluationContext *eval_ctx, * which is only in BKE_object_where_is_calc now */ /* XXX: should this case be OB_RECALC_OB instead? */ if (recalc_object || recalc_data) { - if (G.debug & G_DEBUG_DEPSGRAPH) { + if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) { printf("recalcob %s\n", ob->id.name + 2); } /* Handle proxy copy for target. */ diff --git a/source/blender/blenkernel/intern/object_update.c b/source/blender/blenkernel/intern/object_update.c index 52c85011b6a..ada3838830e 100644 --- a/source/blender/blenkernel/intern/object_update.c +++ b/source/blender/blenkernel/intern/object_update.c @@ -65,7 +65,7 @@ #include "MEM_guardedalloc.h" #include "DEG_depsgraph.h" -#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH) printf +#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) printf void BKE_object_eval_local_transform(const EvaluationContext *UNUSED(eval_ctx), Object *ob) @@ -152,7 +152,7 @@ void BKE_object_handle_data_update( Key *key; float ctime = BKE_scene_frame_get(scene); - if (G.debug & G_DEBUG_DEPSGRAPH) + if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) printf("recalcdata %s\n", ob->id.name + 2); /* TODO(sergey): Only used by legacy depsgraph. */ diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 9bc4da6f0d5..2ee18df1331 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -4419,7 +4419,7 @@ void BKE_particlesystem_id_loop(ParticleSystem *psys, ParticleSystemIDFunc func, void BKE_particle_system_settings_eval(const struct EvaluationContext *UNUSED(eval_ctx), ParticleSystem *psys) { - if (G.debug & G_DEBUG_DEPSGRAPH) { + if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) { printf("%s on %s (%p)\n", __func__, psys->name, psys); } psys->recalc |= psys->part->recalc; @@ -4428,7 +4428,7 @@ void BKE_particle_system_settings_eval(const struct EvaluationContext *UNUSED(ev void BKE_particle_system_settings_recalc_clear(struct EvaluationContext *UNUSED(eval_ctx), ParticleSettings *particle_settings) { - if (G.debug & G_DEBUG_DEPSGRAPH) { + if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) { printf("%s on %s (%p)\n", __func__, particle_settings->id.name, particle_settings); } particle_settings->recalc = 0; @@ -4438,7 +4438,7 @@ void BKE_particle_system_eval_init(const struct EvaluationContext *UNUSED(eval_c Scene *scene, Object *ob) { - if (G.debug & G_DEBUG_DEPSGRAPH) { + if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) { printf("%s on %s (%p)\n", __func__, ob->id.name, ob); } BKE_ptcache_object_reset(scene, ob, PTCACHE_RESET_DEPSGRAPH); diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c index 4a52c4f7d14..011971b6677 100644 --- a/source/blender/blenkernel/intern/rigidbody.c +++ b/source/blender/blenkernel/intern/rigidbody.c @@ -1689,7 +1689,7 @@ void BKE_rigidbody_rebuild_sim(const struct EvaluationContext *eval_ctx, { float ctime = BKE_scene_frame_get(scene); - if (G.debug & G_DEBUG_DEPSGRAPH) { + if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) { printf("%s at %f\n", __func__, ctime); } @@ -1704,7 +1704,7 @@ void BKE_rigidbody_eval_simulation(const struct EvaluationContext *eval_ctx, { float ctime = BKE_scene_frame_get(scene); - if (G.debug & G_DEBUG_DEPSGRAPH) { + if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) { printf("%s at %f\n", __func__, ctime); } @@ -1721,7 +1721,7 @@ void BKE_rigidbody_object_sync_transforms(const struct EvaluationContext *UNUSED RigidBodyWorld *rbw = scene->rigidbody_world; float ctime = BKE_scene_frame_get(scene); - if (G.debug & G_DEBUG_DEPSGRAPH) { + if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) { printf("%s on %s\n", __func__, ob->id.name); } diff --git a/source/blender/blenkernel/intern/world.c b/source/blender/blenkernel/intern/world.c index 5da8dc563e2..a57fc1fe027 100644 --- a/source/blender/blenkernel/intern/world.c +++ b/source/blender/blenkernel/intern/world.c @@ -196,7 +196,7 @@ void BKE_world_make_local(Main *bmain, World *wrld, const bool lib_local) void BKE_world_eval(const struct EvaluationContext *UNUSED(eval_ctx), World *world) { - if (G.debug & G_DEBUG_DEPSGRAPH) { + if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) { printf("%s on %s (%p)\n", __func__, world->id.name, world); } if (!BLI_listbase_is_empty(&world->gpumaterial)) { diff --git a/source/blender/depsgraph/intern/depsgraph_intern.h b/source/blender/depsgraph/intern/depsgraph_intern.h index df5e51a3910..256b52a78f3 100644 --- a/source/blender/depsgraph/intern/depsgraph_intern.h +++ b/source/blender/depsgraph/intern/depsgraph_intern.h @@ -114,7 +114,7 @@ void deg_editors_scene_update(const DEGEditorUpdateContext *update_ctx, #define DEG_DEBUG_PRINTF(...) \ do { \ - if (G.debug & G_DEBUG_DEPSGRAPH) { \ + if (G.debug & G_DEBUG_DEPSGRAPH_BUILD) { \ fprintf(stderr, __VA_ARGS__); \ fflush(stderr); \ } \ diff --git a/source/blender/depsgraph/intern/depsgraph_tag.cc b/source/blender/depsgraph/intern/depsgraph_tag.cc index b0b3cbe0f8c..ea53b18f55b 100644 --- a/source/blender/depsgraph/intern/depsgraph_tag.cc +++ b/source/blender/depsgraph/intern/depsgraph_tag.cc @@ -508,7 +508,9 @@ void DEG_id_tag_update_ex(Main *bmain, ID *id, int flag) /* Ideally should not happen, but old depsgraph allowed this. */ return; } - DEG_DEBUG_PRINTF("%s: id=%s flag=%d\n", __func__, id->name, flag); + if (G.debug & G_DEBUG_DEPSGRAPH_TAG) { + printf("%s: id=%s flag=%d\n", __func__, id->name, flag); + } DEG::deg_id_tag_update(bmain, id, flag); } diff --git a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc index 8bdc68d9351..daace491a64 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc @@ -87,7 +87,7 @@ extern "C" { namespace DEG { -#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH) printf +#define DEBUG_PRINT if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) printf namespace { diff --git a/source/blender/python/intern/bpy_app.c b/source/blender/python/intern/bpy_app.c index f44401afd7d..c5ff2592746 100644 --- a/source/blender/python/intern/bpy_app.c +++ b/source/blender/python/intern/bpy_app.c @@ -357,6 +357,9 @@ static PyGetSetDef bpy_app_getsets[] = { {(char *)"debug_handlers", bpy_app_debug_get, bpy_app_debug_set, (char *)bpy_app_debug_doc, (void *)G_DEBUG_HANDLERS}, {(char *)"debug_wm", bpy_app_debug_get, bpy_app_debug_set, (char *)bpy_app_debug_doc, (void *)G_DEBUG_WM}, {(char *)"debug_depsgraph", bpy_app_debug_get, bpy_app_debug_set, (char *)bpy_app_debug_doc, (void *)G_DEBUG_DEPSGRAPH}, + {(char *)"debug_depsgraph_build", bpy_app_debug_get, bpy_app_debug_set, (char *)bpy_app_debug_doc, (void *)G_DEBUG_DEPSGRAPH_BUILD}, + {(char *)"debug_depsgraph_eval", bpy_app_debug_get, bpy_app_debug_set, (char *)bpy_app_debug_doc, (void *)G_DEBUG_DEPSGRAPH_EVAL}, + {(char *)"debug_depsgraph_tag", bpy_app_debug_get, bpy_app_debug_set, (char *)bpy_app_debug_doc, (void *)G_DEBUG_DEPSGRAPH_TAG}, {(char *)"debug_simdata", bpy_app_debug_get, bpy_app_debug_set, (char *)bpy_app_debug_doc, (void *)G_DEBUG_SIMDATA}, {(char *)"debug_gpumem", bpy_app_debug_get, bpy_app_debug_set, (char *)bpy_app_debug_doc, (void *)G_DEBUG_GPU_MEM}, diff --git a/source/creator/creator_args.c b/source/creator/creator_args.c index fba3189d5ed..8517d870b8b 100644 --- a/source/creator/creator_args.c +++ b/source/creator/creator_args.c @@ -570,6 +570,9 @@ static int arg_handle_print_help(int UNUSED(argc), const char **UNUSED(argv), vo BLI_argsPrintArgDoc(ba, "--debug-jobs"); BLI_argsPrintArgDoc(ba, "--debug-python"); BLI_argsPrintArgDoc(ba, "--debug-depsgraph"); + BLI_argsPrintArgDoc(ba, "--debug-depsgraph-eval"); + BLI_argsPrintArgDoc(ba, "--debug-depsgraph-build"); + BLI_argsPrintArgDoc(ba, "--debug-depsgraph-tag"); BLI_argsPrintArgDoc(ba, "--debug-depsgraph-no-threads"); BLI_argsPrintArgDoc(ba, "--debug-gpumem"); @@ -765,7 +768,13 @@ static const char arg_handle_debug_mode_generic_set_doc_jobs[] = static const char arg_handle_debug_mode_generic_set_doc_gpu[] = "\n\tEnable gpu debug context and information for OpenGL 4.3+."; static const char arg_handle_debug_mode_generic_set_doc_depsgraph[] = -"\n\tEnable debug messages from dependency graph."; +"\n\tEnable all debug messages from dependency graph."; +static const char arg_handle_debug_mode_generic_set_doc_depsgraph_build[] = +"\n\tEnable debug messages from dependency graph related on graph construction."; +static const char arg_handle_debug_mode_generic_set_doc_depsgraph_tag[] = +"\n\tEnable debug messages from dependency graph related on tagging."; +static const char arg_handle_debug_mode_generic_set_doc_depsgraph_eval[] = +"\n\tEnable debug messages from dependency graph related on evaluation."; static const char arg_handle_debug_mode_generic_set_doc_depsgraph_no_threads[] = "\n\tSwitch dependency graph to a single threaded evaluation."; static const char arg_handle_debug_mode_generic_set_doc_gpumem[] = @@ -1855,6 +1864,12 @@ void main_args_setup(bContext *C, bArgs *ba, SYS_SystemHandle *syshandle) CB_EX(arg_handle_debug_mode_generic_set, gpu), (void *)G_DEBUG_GPU); BLI_argsAdd(ba, 1, NULL, "--debug-depsgraph", CB_EX(arg_handle_debug_mode_generic_set, depsgraph), (void *)G_DEBUG_DEPSGRAPH); + BLI_argsAdd(ba, 1, NULL, "--debug-depsgraph-build", + CB_EX(arg_handle_debug_mode_generic_set, depsgraph_build), (void *)G_DEBUG_DEPSGRAPH_BUILD); + BLI_argsAdd(ba, 1, NULL, "--debug-depsgraph-eval", + CB_EX(arg_handle_debug_mode_generic_set, depsgraph_eval), (void *)G_DEBUG_DEPSGRAPH_EVAL); + BLI_argsAdd(ba, 1, NULL, "--debug-depsgraph-tag", + CB_EX(arg_handle_debug_mode_generic_set, depsgraph_tag), (void *)G_DEBUG_DEPSGRAPH_TAG); BLI_argsAdd(ba, 1, NULL, "--debug-depsgraph-no-threads", CB_EX(arg_handle_debug_mode_generic_set, depsgraph_no_threads), (void *)G_DEBUG_DEPSGRAPH_NO_THREADS); BLI_argsAdd(ba, 1, NULL, "--debug-gpumem", |