Closed mbalfour-amzn closed 1 year ago
For the third assert, the callstack looks like this:
PopcornFX.dll!PopcornFX::Mem::Copy(void * dst, const void * src, unsigned __int64 byteCount) Line 33 C++
PopcornFX.dll!PopcornFX::CParticleTask_KickEvent::_EraseSlice(unsigned int begin, unsigned int end) Line 963 C++
> PopcornFX.dll!PopcornFX::CParticleTask_KickEvent::_RemoveKilledEffectsFromDirectBatchIFN() Line 1020 C++
PopcornFX.dll!PopcornFX::CParticleTask_KickEvent::_VirtualLaunch(PopcornFX::Threads::SThreadContext & threadContext) Line 1107 C++
PopcornFX.dll!PopcornFX::CAsynchronousJob::_LaunchReady(PopcornFX::Threads::SThreadContext & threadContext) Line 230 C++
PopcornFX.dll!PopcornFX::CAsynchronousJob::Run(PopcornFX::Threads::SThreadContext & threadContext) Line 143 C++
PopcornFX.dll!PopcornFX::CWorkerThread::Run() Line 123 C++
PopcornFX.dll!PopcornFX::CThread::ThreadStartAddress(void * param) Line 643 C++
Hi @mbalfour-amzn ,
The following is normally a false positive, occurs when an effect being loaded contains light particles (this was fixed in development
and will be released in v2.15.10 / v2.16.5):
[ERR1][O3DE]> !! PopcornFX Assertion failed !! File : D:/github/o3de-multiplayersample-assets/Gems/O3DEPopcornFXPlugin/Code/Source/Integration/Render/AtomIntegration/AtomRendererCache.cpp(588) Function : PopcornFX::SParticleMaterialBasicDesc::InitFromRenderer(...) Message : m_PipelineStateKey.m_UsedShader != EPopcornFXShader::Shader_Count Condition : m_PipelineStateKey.m_UsedShader != EPopcornFXShader::__Shader_Count Expanded : m_PipelineStateKey.m_UsedShader != EPopcornFXShader::Shader_Count ThreadID : 0 AssertNum : 0
The other asserts are more problematic, we'll take a look asap
Hi, sorry for the delay. I pushed a fix on development for the second assert and will be included in the next release. I haven't been able to reproduce the third assert yet. I will do more in-depth tests.
I've built MultiplayerSample with the following:
(This uses PopcornFX 2.16.3)
When running MultiplayerSample.GameLauncher in debug, the following asserts get triggered:
The first assert appears to be caused by the following in AtomRendererCache.cpp:
When the assert triggers, m_BlendMode is BlendMode_Count, but m_RendererType is Renderer_Light, so no shader gets set.
Not sure what's causing the other asserts.