From afa1a6bebfaa8b2449e7630e7d2facca1e58ea7f Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Sat, 14 Sep 2024 12:26:47 -0400 Subject: [PATCH] Fix: Data race writing to bitmap in PBVH draw Mistake in d601bf7e3ddebf7c370bf023d13eb2d772dd973a. A bit vector can't be written to in parallel. --- source/blender/draw/intern/draw_pbvh.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/source/blender/draw/intern/draw_pbvh.cc b/source/blender/draw/intern/draw_pbvh.cc index 26a8826a230..c0432f21964 100644 --- a/source/blender/draw/intern/draw_pbvh.cc +++ b/source/blender/draw/intern/draw_pbvh.cc @@ -181,9 +181,8 @@ void DrawCacheImpl::AttributeData::tag_dirty(const IndexMask &node_mask) if (this->dirty_nodes.size() < mask_size) { this->dirty_nodes.resize(mask_size); } - /* TODO: Somehow use IndexMask::from_bits with the `reset_all` at the beginning disabled. */ - node_mask.foreach_index_optimized(GrainSize(4096), - [&](const int i) { this->dirty_nodes[i].set(); }); + /* TODO: Somehow use `IndexMask::to_bits` with the `reset_all` at the beginning disabled. */ + node_mask.foreach_index_optimized([&](const int i) { this->dirty_nodes[i].set(); }); } void DrawCacheImpl::tag_all_attributes_dirty(const IndexMask &node_mask)