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-orderingmaster
parent
c1406b1fd7
commit
9f40078223
|
|
@ -279,11 +279,15 @@ void LLViewerPartGroup::updateParticles(const F32 lastdt)
|
||||||
|
|
||||||
LLVector3 gravity(0.f, 0.f, GRAVITY);
|
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()));
|
LLViewerPartSim::checkParticleCount(static_cast<U32>(mParticles.size()));
|
||||||
|
std::atomic_signal_fence(std::memory_order_seq_cst);
|
||||||
|
// </FS:Beq>
|
||||||
|
|
||||||
LLViewerCamera* camera = LLViewerCamera::getInstance();
|
LLViewerCamera* camera = LLViewerCamera::getInstance();
|
||||||
LLViewerRegion *regionp = getRegion();
|
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();)
|
for (S32 i = 0 ; i < (S32)mParticles.size();)
|
||||||
{
|
{
|
||||||
LLVector3 a(0.f, 0.f, 0.f);
|
LLVector3 a(0.f, 0.f, 0.f);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue