diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/subsurf_ccg.c | 12 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_subsurf.c | 2 |
2 files changed, 9 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index f6337d6ed60..a3e4b47fd15 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -4758,11 +4758,15 @@ struct DerivedMesh *subsurf_make_derived_from_derived( * this is to be investiated still to be sure we don't have * regressions here. */ - prevSS = smd->mCache; -#else - ccgSubSurf_free(smd->mCache); - smd->mCache = NULL; + if (use_gpu_backend) { + prevSS = smd->mCache; + } + else #endif + { + ccgSubSurf_free(smd->mCache); + smd->mCache = NULL; + } } diff --git a/source/blender/modifiers/intern/MOD_subsurf.c b/source/blender/modifiers/intern/MOD_subsurf.c index dc6e3b4e70a..edf02abfd2a 100644 --- a/source/blender/modifiers/intern/MOD_subsurf.c +++ b/source/blender/modifiers/intern/MOD_subsurf.c @@ -104,7 +104,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, #ifdef WITH_OPENSUBDIV const bool allow_gpu = (flag & MOD_APPLY_ALLOW_GPU) != 0; - const bool do_cddm_convert = useRenderParams; + const bool do_cddm_convert = useRenderParams || (!isFinalCalc && !smd->use_opensubdiv); #else const bool do_cddm_convert = useRenderParams || !isFinalCalc; #endif |