PopcornFX / O3DEPopcornFXPlugin

PopcornFX plugin for O3DE
https://www.popcornfx.com/
Other
13 stars 12 forks source link

Intermittent crash in Multiplayer Sample #51

Open mbalfour-amzn opened 1 year ago

mbalfour-amzn commented 1 year ago

When running the MultiplayerSample GameLauncher client in the development branch, I get intermittent crashes with the following callstack:

>   PopcornFX.dll!PopcornFX::_ExpandAndInterpolatePayload_0x0C_f32x3(const void * srcPtrA, const void * srcPtrB, const void * srcPtrAd, const void * srcPtrBd, const PopcornFX::TMemoryView<unsigned int const> & cacheParentId, const PopcornFX::TMemoryView<float const> & cacheCursors, void * curPayloadPtr, unsigned int count, const PopcornFX::SPayloadElementView::ELerpSemantic payloadLerpSemantic) Line 696  C++
    PopcornFX.dll!PopcornFX::CParticleTask_KickEvent::_VirtualLaunch(PopcornFX::Threads::SThreadContext & threadContext) Line 1441  C++
    PopcornFX.dll!PopcornFX::CAsynchronousJob::_LaunchReady(PopcornFX::Threads::SThreadContext & threadContext) Line 232    C++
    PopcornFX.dll!PopcornFX::CWorkerThread::Run() Line 123  C++
    PopcornFX.dll!PopcornFX::CThread::ThreadStartAddress(void * param) Line 643 C++

The specific crash in this example is: Exception thrown at 0x00007FFB383355D8 (PopcornFX.dll) in MultiplayerSample.GameLauncher.exe: 0xC0000005: Access violation reading location 0x000001C45345C740.

Here are all of the local variables available in VS at the point of the crash:

Document   | Name | Value | Type -- | -- | -- | -- ◢ | cacheCursors | {m_Data=0x000000a71e7ff410 "\x14\x1" m_Count=0x0000007c } | const PopcornFX::TMemoryView &   | ▶ m_Data | 0x000000a71e7ff410 "\x14\x1" | const unsigned char *   | m_Count | 0x0000007c | unsigned int ◢ | cacheParentId | {m_Data=0x000000a71e7ff610 "0ü\x1e§" m_Count=0x0000007c } | const PopcornFX::TMemoryView &   | ▶ m_Data | 0x000000a71e7ff610 "0ü\x1e§" | const unsigned char *   | m_Count | 0x0000007c | unsigned int   | count | 0x0000000c | unsigned int   | curPayloadPtr | 0x000001c30eb63840 | void *   | f | Variable is optimized away and not available. |     | payloadLerpSemantic | LerpSemantic_Linear (0x00000001) | PopcornFX::SPayloadElementView::ELerpSemantic   | srcPtrA | 0x000001c2e545f440 | const void *   | srcPtrAd | Variable is optimized away and not available. |     | srcPtrB | 0x000001c2e545f500 | const void *   | srcPtrBd | Variable is optimized away and not available. |  

There are several asserts in _VirtualLaunch when running with a debug build, it's possible this crash is related to those asserts.