From 2149bdb8e66de78633a1008772ec986ae8951d59 Mon Sep 17 00:00:00 2001 From: Daniel Dresser Date: Tue, 10 Sep 2024 15:39:07 -0700 Subject: [PATCH] PrimitiveAlgo : Optimize transformPrimitive --- .../IECoreScenePreview/PrimitiveAlgo.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/GafferScene/IECoreScenePreview/PrimitiveAlgo.cpp b/src/GafferScene/IECoreScenePreview/PrimitiveAlgo.cpp index 09081fe6e2..a25f830f45 100644 --- a/src/GafferScene/IECoreScenePreview/PrimitiveAlgo.cpp +++ b/src/GafferScene/IECoreScenePreview/PrimitiveAlgo.cpp @@ -1381,14 +1381,17 @@ void PrimitiveAlgo::transformPrimitive( { std::vector< Imath::V3f >& writable = vecVar->writable(); - for( size_t i = 0; i < writable.size(); i++ ) - { - Canceller::check( canceller ); - transformPrimVarValue( - &writable[i], &writable[i], 1, - matrix, normalMatrix, interp - ); - }; + tbb::parallel_for( + tbb::blocked_range( 0, writable.size(), 10000 ), + [&]( tbb::blocked_range &range ) + { + Canceller::check( canceller ); + transformPrimVarValue( + &writable[range.begin()], &writable[range.begin()], range.end() - range.begin(), + matrix, normalMatrix, interp + ); + } + ); } else {