Commit: 50ba4762f685996614f6585183fbe8085b89f27d
Author: Sergey Sharybin
Date:   Fri Nov 16 10:34:00 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB50ba4762f685996614f6585183fbe8085b89f27d

Fix T57566: Blender 2.8 crashes with the new multires

===================================================================

M       source/blender/blenkernel/intern/multires_reshape.c

===================================================================

diff --git a/source/blender/blenkernel/intern/multires_reshape.c 
b/source/blender/blenkernel/intern/multires_reshape.c
index fe4bc5ca3e0..72be2617798 100644
--- a/source/blender/blenkernel/intern/multires_reshape.c
+++ b/source/blender/blenkernel/intern/multires_reshape.c
@@ -875,8 +875,6 @@ static bool multires_reshape_from_vertcos(
        Scene *scene_eval = DEG_get_evaluated_scene(depsgraph);
        Mesh *coarse_mesh = object->data;
        MDisps *mdisps = CustomData_get_layer(&coarse_mesh->ldata, CD_MDISPS);
-       /* Make sure displacement grids are ready. */
-       multires_reshape_ensure_grids(coarse_mesh, mmd->totlvl);
        /* Pick maximum between multires level and dispalcement level.
         * This is because mesh can be used by objects with multires at 
different
         * levels.
@@ -885,6 +883,8 @@ static bool multires_reshape_from_vertcos(
         * mdisps->level.
         */
        const int top_level = max_ii(mmd->totlvl, mdisps->level);
+       /* Make sure displacement grids are ready. */
+       multires_reshape_ensure_grids(coarse_mesh, top_level);
        /* Construct context. */
        MultiresReshapeFromDeformedVertsContext reshape_deformed_verts_ctx = {
                .reshape_ctx = {
@@ -1166,8 +1166,6 @@ bool multiresModifier_reshapeFromCCG(
        GridPaintMask *grid_paint_mask =
                CustomData_get_layer(&coarse_mesh->ldata, CD_GRID_PAINT_MASK);
        Subdiv *subdiv = subdiv_ccg->subdiv;
-       /* Make sure displacement grids are ready. */
-       multires_reshape_ensure_grids(coarse_mesh, tot_level);
        /* Pick maximum between multires level and dispalcement level.
         * This is because mesh can be used by objects with multires at 
different
         * levels.
@@ -1176,6 +1174,8 @@ bool multiresModifier_reshapeFromCCG(
         * mdisps->level.
         */
        const int top_level = max_ii(tot_level, mdisps->level);
+       /* Make sure displacement grids are ready. */
+       multires_reshape_ensure_grids(coarse_mesh, top_level);
        /* Construct context. */
        ReshapeFromCCGTaskData data = {
                .reshape_ctx = {

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to