UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FMetalCommandQueue Class Reference

#include <MetalCommandQueue.h>

Public Types

using FPayloadArray = TArray< FMetalPayload * >
 

Public Member Functions

 FMetalCommandQueue (FMetalDevice &Device, uint32 const MaxNumCommandBuffers=0)
 
 ~FMetalCommandQueue (void)
 
FMetalCommandBufferCreateCommandBuffer (void)
 
void CommitCommandBuffer (FMetalCommandBuffer *CommandBuffer)
 
FMetalFenceCreateFence (NS::String *Label) const
 
FMetalDeviceGetDevice (void)
 
MTL::CommandQueue * GetQueue (void)
 
void InsertDebugCaptureBoundary (void)
 
uint64 FinalizePayload (bool bRequiresSignal, FPayloadArray &PayloadsToHandDown)
 
FMetalSignalEventGetSignalEvent ()
 

Static Public Member Functions

static MTL::ResourceOptions GetCompatibleResourceOptions (MTL::ResourceOptions Options)
 
static bool SupportsSeparateMSAAAndResolveTarget ()
 
static bool IsUMASystem ()
 

Public Attributes

 PendingSubmission
 
 PendingInterrupt
 
FMetalPayloadPayloadToSubmit = nullptr
 
TArray< FMetalRHIRenderQuery * > TimestampQueries
 
TArray< FMetalRHIRenderQuery * > OcclusionQueries
 
TArray< FMetalCounterSamplePtrCounterSamples
 
TMap< FMetalEventNode *, TArray< FMetalCounterSamplePtr > > EventSampleCounters
 

Detailed Description

Member Typedef Documentation

◆ FPayloadArray

Constructor & Destructor Documentation

◆ FMetalCommandQueue()

FMetalCommandQueue::FMetalCommandQueue ( FMetalDevice Device,
uint32 const  MaxNumCommandBuffers = 0 
)

Constructor

Parameters
DeviceThe Metal device to create on.
MaxNumCommandBuffersThe maximum number of incomplete command-buffers, defaults to 0 which implies the system default.

◆ ~FMetalCommandQueue()

FMetalCommandQueue::~FMetalCommandQueue ( void  )

Destructor

Member Function Documentation

◆ CommitCommandBuffer()

void FMetalCommandQueue::CommitCommandBuffer ( FMetalCommandBuffer CommandBuffer)

Commit the supplied command buffer immediately.

Parameters
CommandBufferThe command buffer to commit, must not be null

◆ CreateCommandBuffer()

FMetalCommandBuffer * FMetalCommandQueue::CreateCommandBuffer ( void  )

Start encoding to CommandBuffer. It is an error to call this with any outstanding command encoders or current command buffer. Instead call EndEncoding & CommitCommandBuffer before calling this.

Parameters
CommandBufferThe new command buffer to begin encoding to.

◆ CreateFence()

FMetalFence * FMetalCommandQueue::CreateFence ( NS::String *  Label) const
Returns
Creates a new MTLFence or nullptr if this is unsupported

◆ FinalizePayload()

uint64 FMetalCommandQueue::FinalizePayload ( bool  bRequiresSignal,
FPayloadArray PayloadsToHandDown 
)

◆ GetCompatibleResourceOptions()

MTL::ResourceOptions FMetalCommandQueue::GetCompatibleResourceOptions ( MTL::ResourceOptions  Options)
static

Converts a Metal v1.1+ resource option to something valid on the current version.

◆ GetDevice()

FMetalDevice & FMetalCommandQueue::GetDevice ( void  )
Returns
The command queue's native device.

◆ GetQueue()

MTL::CommandQueue * FMetalCommandQueue::GetQueue ( void  )
inline
Returns
The command queue's native device.

◆ GetSignalEvent()

FMetalSignalEvent & FMetalCommandQueue::GetSignalEvent ( )
inline

◆ InsertDebugCaptureBoundary()

void FMetalCommandQueue::InsertDebugCaptureBoundary ( void  )

Inserts a boundary that marks the end of a frame for the debug capture tool.

◆ IsUMASystem()

static bool FMetalCommandQueue::IsUMASystem ( )
inlinestatic
Returns
True on UMA system; false otherwise.

◆ SupportsSeparateMSAAAndResolveTarget()

static bool FMetalCommandQueue::SupportsSeparateMSAAAndResolveTarget ( )
inlinestatic
Parameters
InFeatureA specific Metal feature to check for.
Returns
True if RHISupportsSeparateMSAAAndResolveTextures will be true.
Currently Mac only.

Member Data Documentation

◆ CounterSamples

TArray<FMetalCounterSamplePtr> FMetalCommandQueue::CounterSamples

◆ EventSampleCounters

TMap<FMetalEventNode*, TArray<FMetalCounterSamplePtr> > FMetalCommandQueue::EventSampleCounters

◆ OcclusionQueries

TArray<FMetalRHIRenderQuery*> FMetalCommandQueue::OcclusionQueries

◆ PayloadToSubmit

FMetalPayload* FMetalCommandQueue::PayloadToSubmit = nullptr

◆ PendingInterrupt

FMetalCommandQueue::PendingInterrupt

◆ PendingSubmission

FMetalCommandQueue::PendingSubmission

◆ TimestampQueries

TArray<FMetalRHIRenderQuery*> FMetalCommandQueue::TimestampQueries

The documentation for this class was generated from the following files: