UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AudioThread.cpp File Reference
#include "AudioThread.h"
#include "Audio.h"
#include "Async/Async.h"
#include "Containers/SpscQueue.h"
#include "Containers/Ticker.h"
#include "Engine/Engine.h"
#include "Engine/World.h"
#include "ProfilingDebugging/CsvProfiler.h"
#include "Tasks/Pipe.h"

Classes

struct  AudioCommandPrivate::FAudioCommand
 
class  AudioCommandPrivate::FGameThreadAudioCommandQueue
 
struct  FAudioThreadInteractor
 
struct  FAudioAsyncBatcher
 

Namespaces

namespace  AudioCommandPrivate
 

Functions

void AudioCommandPrivate::BatchGameThreadAudioCommandsChangedCallback (IConsoleVariable *ConsoleVariable)
 
FAutoConsoleVariableRef AudioCommandPrivate::CVarBatchGameThreadAudioCommands (TEXT("AudioThread.BatchCommands"), bBatchGameThreadAudioCommands, TEXT("Batch audio commands that are created from the audio thread and executed on the game thread so that they are executed in a single task."), FConsoleVariableDelegate::CreateStatic(&BatchGameThreadAudioCommandsChangedCallback), ECVF_Default)
 

Variables

CORE_API UE::Tasks::FPipe GAudioPipe
 
CORE_API std::atomic< boolGIsAudioThreadRunning
 
CORE_API std::atomic< boolGIsAudioThreadSuspended
 
FAutoConsoleVariableRef CVarSuspendAudioThread (TEXT("AudioThread.SuspendAudioThread"), GCVarSuspendAudioThread, TEXT("0=Resume, 1=Suspend"), ECVF_Cheat)
 
FAutoConsoleVariableRef CVarAboveNormalAudioThreadPri (TEXT("AudioThread.AboveNormalPriority"), GCVarAboveNormalAudioThreadPri, TEXT("0=Normal, 1=AboveNormal"), ECVF_Default)
 
FAutoConsoleVariableRef CVarEnableAudioCommandLogging (TEXT("AudioThread.EnableAudioCommandLogging"), GCVarEnableAudioCommandLogging, TEXT("0=Disbaled, 1=Enabled"), ECVF_Default)
 
FAutoConsoleVariableRef CVarEnableBatchProcessing (TEXT("AudioThread.EnableBatchProcessing"), GCVarEnableBatchProcessing, TEXT("0: Not Enabled, 1: Enabled"), ECVF_Default)
 
FAutoConsoleVariableRef CVarAudioCommandFenceWaitTimeMs (TEXT("AudioCommand.FenceWaitTimeMs"), GAudioCommandFenceWaitTimeMs, TEXT("Sets number of ms for fence wait"), ECVF_Default)
 
bool AudioCommandPrivate::bBatchGameThreadAudioCommands = true
 
const FLazyName AudioCommandPrivate::DiagnosticName ("FGameThreadAudioCommandQueue")
 
FGameThreadAudioCommandQueue AudioCommandPrivate::CommandQueue
 
FAutoConsoleVariableRef CVarAudioThreadUseSafeRunCommandOnGameThread (TEXT("AudioThread.UseSafeRunCommandOnGameThread"), GAudioThreadUseSafeRunCommandOnGameThread, TEXT("When active, limit commands sent to the game thread to run at a safe place inside a tick"), ECVF_Default)
 
UE::Tasks::ETaskPriority GAudioTaskPriority = UE::Tasks::ETaskPriority::Normal
 

Variable Documentation

◆ CVarAboveNormalAudioThreadPri

FAutoConsoleVariableRef CVarAboveNormalAudioThreadPri(TEXT("AudioThread.AboveNormalPriority"), GCVarAboveNormalAudioThreadPri, TEXT("0=Normal, 1=AboveNormal"), ECVF_Default) ( TEXT("AudioThread.AboveNormalPriority")  ,
GCVarAboveNormalAudioThreadPri  ,
TEXT("0=Normal, 1=AboveNormal" ,
ECVF_Default   
)

◆ CVarAudioCommandFenceWaitTimeMs

FAutoConsoleVariableRef CVarAudioCommandFenceWaitTimeMs(TEXT("AudioCommand.FenceWaitTimeMs"), GAudioCommandFenceWaitTimeMs, TEXT("Sets number of ms for fence wait"), ECVF_Default) ( TEXT("AudioCommand.FenceWaitTimeMs")  ,
GAudioCommandFenceWaitTimeMs  ,
TEXT("Sets number of ms for fence wait" ,
ECVF_Default   
)

◆ CVarAudioThreadUseSafeRunCommandOnGameThread

FAutoConsoleVariableRef CVarAudioThreadUseSafeRunCommandOnGameThread(TEXT("AudioThread.UseSafeRunCommandOnGameThread"), GAudioThreadUseSafeRunCommandOnGameThread, TEXT("When active, limit commands sent to the game thread to run at a safe place inside a tick"), ECVF_Default) ( TEXT("AudioThread.UseSafeRunCommandOnGameThread")  ,
GAudioThreadUseSafeRunCommandOnGameThread  ,
TEXT("When active, limit commands sent to the game thread to run at a safe place inside a tick" ,
ECVF_Default   
)

◆ CVarEnableAudioCommandLogging

FAutoConsoleVariableRef CVarEnableAudioCommandLogging(TEXT("AudioThread.EnableAudioCommandLogging"), GCVarEnableAudioCommandLogging, TEXT("0=Disbaled, 1=Enabled"), ECVF_Default) ( TEXT("AudioThread.EnableAudioCommandLogging")  ,
GCVarEnableAudioCommandLogging  ,
TEXT("0=Disbaled, 1=Enabled" ,
ECVF_Default   
)

◆ CVarEnableBatchProcessing

FAutoConsoleVariableRef CVarEnableBatchProcessing(TEXT("AudioThread.EnableBatchProcessing"), GCVarEnableBatchProcessing, TEXT("0: Not Enabled, 1: Enabled"), ECVF_Default) ( TEXT("AudioThread.EnableBatchProcessing")  ,
GCVarEnableBatchProcessing  ,
TEXT("0: Not Enabled, 1: Enabled" ,
ECVF_Default   
)

◆ CVarSuspendAudioThread

FAutoConsoleVariableRef CVarSuspendAudioThread(TEXT("AudioThread.SuspendAudioThread"), GCVarSuspendAudioThread, TEXT("0=Resume, 1=Suspend"), ECVF_Cheat) ( TEXT("AudioThread.SuspendAudioThread")  ,
GCVarSuspendAudioThread  ,
TEXT("0=Resume, 1=Suspend" ,
ECVF_Cheat   
)

◆ GAudioPipe

CORE_API UE::Tasks::FPipe GAudioPipe
extern

◆ GAudioTaskPriority

UE::Tasks::ETaskPriority GAudioTaskPriority = UE::Tasks::ETaskPriority::Normal

◆ GIsAudioThreadRunning

CORE_API std::atomic<bool> GIsAudioThreadRunning
extern

◆ GIsAudioThreadSuspended

CORE_API std::atomic<bool> GIsAudioThreadSuspended
extern