diff --git a/Runtime/Particle/CElementGen.cpp b/Runtime/Particle/CElementGen.cpp index 66840121a..64a0ed9c0 100644 --- a/Runtime/Particle/CElementGen.cpp +++ b/Runtime/Particle/CElementGen.cpp @@ -227,6 +227,7 @@ CElementGen::~CElementGen() { bool CElementGen::Update(double t) { s32 oldMax = x90_MAXP; + s32 oldMBSP = x270_MBSP; CParticleGlobals::SParticleSystem* prevSystem = CParticleGlobals::instance()->m_currentParticleSystem; CParticleGlobals::SParticleSystem thisSystem{FOURCC('PART'), this}; CParticleGlobals::instance()->m_currentParticleSystem = &thisSystem; @@ -242,13 +243,14 @@ bool CElementGen::Update(double t) { bool ret = InternalUpdate(t); CParticleGlobals::instance()->m_currentParticleSystem = prevSystem; - if (oldMax < x90_MAXP) { - _RecreatePipelines(); + if (oldMax < x90_MAXP || oldMBSP < x270_MBSP) { + //_RecreatePipelines(); } return ret; } + void CElementGen::_RecreatePipelines() { - size_t maxInsts = x26c_30_MBLR ? (x270_MBSP * x90_MAXP) : x90_MAXP; + size_t maxInsts = x26c_30_MBLR ? 2560 * 2 : 2560;//x26c_30_MBLR ? (x270_MBSP * x90_MAXP) : x90_MAXP; maxInsts = (maxInsts == 0 ? 256 : maxInsts); CGraphics::CommitResources([&](boo::IGraphicsDataFactory::Context& ctx) {