FIRE-34600 - bugsplat fix (particle count mismatch on AVX2)

Working on the assumption that AVX2 aggressive re-ordering is causing the off by one, place a barrier to compiler re-ordering
master
Beq 2024-10-01 23:06:38 +01:00
parent c1406b1fd7
commit 9f40078223
1 changed files with 5 additions and 1 deletions

View File

@ -279,11 +279,15 @@ void LLViewerPartGroup::updateParticles(const F32 lastdt)
LLVector3 gravity(0.f, 0.f, GRAVITY);
// <FS:Beq> FIRE-34600 off by one particle count triggering bugsplat (LL_ERR)
S32 end = (S32) mParticles.size();
LLViewerPartSim::checkParticleCount(static_cast<U32>(mParticles.size()));
std::atomic_signal_fence(std::memory_order_seq_cst);
// </FS:Beq>
LLViewerCamera* camera = LLViewerCamera::getInstance();
LLViewerRegion *regionp = getRegion();
S32 end = (S32) mParticles.size();
//S32 end = (S32) mParticles.size();// <FS:Beq> FIRE-34600 off by one particle count triggering bugsplat (LL_ERR)
for (S32 i = 0 ; i < (S32)mParticles.size();)
{
LLVector3 a(0.f, 0.f, 0.f);