Depsgraph: Reduce number of depsgraph_legacy usages outside of depsgraph
This commit is contained in:
parent
4f3d9a09fe
commit
1beebcb10c
|
@ -2611,7 +2611,8 @@ static void editbmesh_calc_modifiers(
|
|||
* we'll be using GPU backend of OpenSubdiv. This is so
|
||||
* playback performance is kept as high as possible.
|
||||
*/
|
||||
static bool calc_modifiers_skip_orco(Scene *scene,
|
||||
static bool calc_modifiers_skip_orco(const EvaluationContext *eval_ctx,
|
||||
Scene *scene,
|
||||
Object *ob,
|
||||
bool use_render_params)
|
||||
{
|
||||
|
@ -2627,8 +2628,7 @@ static bool calc_modifiers_skip_orco(Scene *scene,
|
|||
else if ((ob->mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT | OB_MODE_TEXTURE_PAINT)) != 0) {
|
||||
return false;
|
||||
}
|
||||
/* TODO(sergey): How do we get depsgraph here? */
|
||||
else if ((DEG_get_eval_flags_for_id(scene->depsgraph_legacy, &ob->id) & DAG_EVAL_NEED_CPU) != 0) {
|
||||
else if ((DEG_get_eval_flags_for_id(eval_ctx->depsgraph, &ob->id) & DAG_EVAL_NEED_CPU) != 0) {
|
||||
return false;
|
||||
}
|
||||
SubsurfModifierData *smd = (SubsurfModifierData *)last_md;
|
||||
|
@ -2649,7 +2649,7 @@ static void mesh_build_data(
|
|||
BKE_object_sculpt_modifiers_changed(ob);
|
||||
|
||||
#ifdef WITH_OPENSUBDIV
|
||||
if (calc_modifiers_skip_orco(scene, ob, false)) {
|
||||
if (calc_modifiers_skip_orco(eval_ctx, scene, ob, false)) {
|
||||
dataMask &= ~(CD_MASK_ORCO | CD_MASK_PREVIEW_MCOL);
|
||||
}
|
||||
#endif
|
||||
|
@ -2686,7 +2686,7 @@ static void editbmesh_build_data(
|
|||
BKE_editmesh_free_derivedmesh(em);
|
||||
|
||||
#ifdef WITH_OPENSUBDIV
|
||||
if (calc_modifiers_skip_orco(scene, obedit, false)) {
|
||||
if (calc_modifiers_skip_orco(eval_ctx, scene, obedit, false)) {
|
||||
dataMask &= ~(CD_MASK_ORCO | CD_MASK_PREVIEW_MCOL);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -1745,9 +1745,8 @@ static void do_makeDispListCurveTypes(
|
|||
}
|
||||
|
||||
if (!for_orco) {
|
||||
/* TODO(sergey): How do we get depsgraph here? */
|
||||
if ((cu->flag & CU_PATH) ||
|
||||
DEG_get_eval_flags_for_id(scene->depsgraph_legacy, &ob->id) & DAG_EVAL_NEED_CURVE_PATH)
|
||||
DEG_get_eval_flags_for_id(eval_ctx->depsgraph, &ob->id) & DAG_EVAL_NEED_CURVE_PATH)
|
||||
{
|
||||
calc_curvepath(ob, &nubase);
|
||||
}
|
||||
|
|
|
@ -37,6 +37,8 @@
|
|||
|
||||
extern "C" {
|
||||
#include "BKE_scene.h"
|
||||
|
||||
#include "DNA_scene_types.h"
|
||||
} /* extern "C" */
|
||||
|
||||
#include "DEG_depsgraph.h"
|
||||
|
@ -83,6 +85,8 @@ void DEG_evaluation_context_init_from_scene(EvaluationContext *eval_ctx,
|
|||
eEvaluationMode mode)
|
||||
{
|
||||
DEG_evaluation_context_init(eval_ctx, mode);
|
||||
/* TODO(sergey): Use proper depsgraph here. */
|
||||
eval_ctx->depsgraph = scene->depsgraph_legacy;
|
||||
eval_ctx->scene_layer = scene_layer;
|
||||
eval_ctx->engine = engine;
|
||||
eval_ctx->ctime = BKE_scene_frame_get(scene);
|
||||
|
|
|
@ -953,6 +953,7 @@ Render *BlenderStrokeRenderer::RenderScene(Render * /*re*/, bool render)
|
|||
|
||||
Render *freestyle_render = RE_NewSceneRender(freestyle_scene);
|
||||
DEG_scene_relations_update(freestyle_bmain, freestyle_scene);
|
||||
/* Need to get proper depsgraph. */
|
||||
freestyle_render->depsgraph = freestyle_scene->depsgraph_legacy;
|
||||
|
||||
RE_RenderFreestyleStrokes(freestyle_render, freestyle_bmain, freestyle_scene,
|
||||
|
|
|
@ -98,7 +98,7 @@ static bool isDisabled(ModifierData *md, int useRenderParams)
|
|||
return get_render_subsurf_level(&md->scene->r, levels, useRenderParams != 0) == 0;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, const EvaluationContext *UNUSED(eval_ctx),
|
||||
static DerivedMesh *applyModifier(ModifierData *md, const EvaluationContext *eval_ctx,
|
||||
Object *ob, DerivedMesh *derivedData,
|
||||
ModifierApplyFlag flag)
|
||||
{
|
||||
|
@ -135,8 +135,7 @@ static DerivedMesh *applyModifier(ModifierData *md, const EvaluationContext *UNU
|
|||
else if ((ob->mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT | OB_MODE_TEXTURE_PAINT)) != 0) {
|
||||
modifier_setError(md, "OpenSubdiv is not supported in paint modes");
|
||||
}
|
||||
/* TODO(sergey): How do we get depsgraph here? */
|
||||
else if ((DEG_get_eval_flags_for_id(md->scene->depsgraph_legacy, &ob->id) & DAG_EVAL_NEED_CPU) == 0) {
|
||||
else if ((DEG_get_eval_flags_for_id(eval_ctx->depsgraph, &ob->id) & DAG_EVAL_NEED_CPU) == 0) {
|
||||
subsurf_flags |= SUBSURF_USE_GPU_BACKEND;
|
||||
do_cddm_convert = false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue