Yes, we tracked the issue to the EQ effect being used in XAudio2. Something about that specific effect doesn’t work on AMD. Since XAudio2 is closed source, we can’t fix it ourselves without writing our own equalizer effect. Good news is that I am literally doing that right now for the new audio mixer.
In the meantime, we have checked in a short-term fix/workaround which is not ideal if the game is heavily using the EQ effect.
In XAudio2Source.cpp, in FXAudio2SoundSource::CreateSource, we are doing the following:
// Create a source that goes to the spatialisation code and reverb effect
Destinations[NumSends].pOutputVoice = Effects->DryPremasterVoice;
// EQFilter Causes sound devices on AMD boards to lag and starve important game threads. Hack disable for AMD until a long term solution is put into place.
static const bool bIsAMD = (FPlatformMisc::GetCPUVendor() == TEXT("AuthenticAMD"));
if (!bIsAMD && IsEQFilterApplied())
{
Destinations[NumSends].pOutputVoice = Effects->EQPremasterVoice;
}
NumSends++;