From bfb4dcaa1a7ec5bfd2b25cf7aa5b6173d6c53358 Mon Sep 17 00:00:00 2001 From: Joseph Eagar Date: Wed, 27 Apr 2022 13:03:49 -0700 Subject: Fix T97235: PBVH draw cache invalidation bug The PBVH draw cache wasn't being invalidated in all cases. It is now invalidated whenever a PBVH node's draw buffers are freed. --- source/blender/draw/intern/draw_cache_impl_mesh.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source/blender/draw') diff --git a/source/blender/draw/intern/draw_cache_impl_mesh.c b/source/blender/draw/intern/draw_cache_impl_mesh.c index e4aec17eb69..917216b92e6 100644 --- a/source/blender/draw/intern/draw_cache_impl_mesh.c +++ b/source/blender/draw/intern/draw_cache_impl_mesh.c @@ -883,6 +883,11 @@ static bool mesh_batch_cache_valid(Object *object, Mesh *me) if (cache->pbvh_is_drawing != BKE_pbvh_is_drawing(object->sculpt->pbvh)) { return false; } + + if (BKE_pbvh_is_drawing(object->sculpt->pbvh) && + BKE_pbvh_draw_cache_invalid(object->sculpt->pbvh)) { + return false; + } } if (cache->is_editmode != (me->edit_mesh != NULL)) { -- cgit v1.2.3