Audiokinetic의 커뮤니티 Q&A는 사용자가 Wwise와 Strata 커뮤니티 내에서 서로 질문과 답변을 하는 포럼입니다. Audiokinetic의 기술 지원팀에게 문의하고 싶으신 경우 지원 티켓 페이지를 사용해주세요.

AkSpeakerPan generating Assertion at runtime

+1 투표
Hi,

We're currently working with a developer on a project using WWise 2017.2.2.6553, they're encountering an issue with the Audio which generations the following assertion in debug:

Assertion Failed! D:/Jenkins/ws/wwise_v2017.2/Wwise/SDK/source/SoundEngine/AkAudiolib/Common/AkSpeakerPan.cpp:1252: first > 0 || second > 0

Assertion Failed! D:/Jenkins/ws/wwise_v2017.2/Wwise/SDK/source/SoundEngine/AkAudiolib/Common/AkSpeakerPan.cpp:1251: uArc < in_uNumArcs

This manifests itself in game as corrupt audio, it seems that the rapid switching of L/R audio channels is triggering the issue.

 

Has anyone encountered this, is there a work around or a fix in later versions of WWise?

 

Thanks,

David Smethurst
문의 2018 5월 9 General Discussion David S. (110 포인트) 로 부터

2 답변

0 투표
Hey David,

Yeah we're getting the same assert in Wwise 2017.2.4.

The assert is being triggered in AddPowerVbap2d, and it's happening right after a while loop that uses floating-point termination.

We haven't managed to fix the problem - but it seems to be related to modifying listener positions. We managed to reduce the number of occurrences by only having one active listener at any given time, and setting that listener using AK::SoundEngine::SetDefaultListeners instead of AK::SoundEngine::AddDefaultListener / AK::SoundEngine::RemoveDefaultListener.

Let me know if you find a fix!
답변 2018 6월 7 Oliver S. (310 포인트) 로 부터
+1 투표
Hey David,

A colleague of mine managed to track down the issue.

In our case it's caused by one of our pools running out of memory.

When a new listener gets added a call to Ak3DListener::GetListenerMatrix from CAkPath::InitRotationMatrixForListener returns a null pointer, but that data is eventually used by AkSpeakerPan::AddPowerVbap2d.

Hope that helps.
답변 2018 6월 13 Oliver S. (310 포인트) 로 부터
Thanks for the info. I don't have the source-code, so I can't say if our behavior is the same. We only have one listener though, that is added on initialization.

Your tip about the memory pools was interesting. I tried increasing the size of every pool I found, but couldn't not get the issue to go away. Do you remember specifically which pool were the problem?
...