UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
D3D12Util.cpp File Reference
#include "D3D12Util.h"
#include "D3D12RHIPrivate.h"
#include "EngineModule.h"
#include "RendererInterface.h"
#include "CoreGlobals.h"
#include "Engine/GameEngine.h"
#include "Misc/OutputDeviceRedirector.h"
#include "HAL/ExceptionHandling.h"
#include "GenericPlatform/GenericPlatformCrashContext.h"

Namespaces

namespace  D3D12RHI
 

Macros

#define D3DERR(x)   case x: ErrorCodeText = TEXT(#x); break;
 
#define LOCTEXT_NAMESPACE   "Developer.MessageLog"
 
#define D3D12RHI_GPU_CRASH_LOG_VERBOSITY   Error
 

Functions

bool ShouldSetD3D12ResourceName (const FD3D12ResourceLocation &ResourceLocation)
 
void SetD3D12ObjectName (ID3D12Object *Object, const TCHAR *Name)
 
void SetD3D12ResourceName (FD3D12Resource *Resource, const TCHAR *Name)
 
void SetD3D12ResourceName (FD3D12ResourceLocation &ResourceLocation, const TCHAR *Name)
 
void SetD3D12ResourceName (FD3D12Buffer *Buffer, const TCHAR *Name)
 
void SetD3D12ResourceName (FD3D12Texture *Texture, const TCHAR *Name)
 
FString GetD312ObjectName (ID3D12Object *const Object)
 
void D3D12RHI::VerifyD3D12Result (HRESULT D3DResult, const ANSICHAR *Code, const ANSICHAR *Filename, uint32 Line, ID3D12Device *Device, FString Message)
 
void D3D12RHI::VerifyD3D12CreateTextureResult (HRESULT D3DResult, const ANSICHAR *Code, const ANSICHAR *Filename, uint32 Line, const D3D12_RESOURCE_DESC &TextureDesc, ID3D12Device *Device)
 
bool NeedsAgsIntrinsicsSpace (const FD3D12ShaderData &ShaderData)
 
void LogExecuteCommandLists (uint32 NumCommandLists, ID3D12CommandList *const *ppCommandLists)
 
 DEFINE_STAT (STAT_D3D12PresentTime)
 
 DEFINE_STAT (STAT_D3D12CustomPresentTime)
 
 DEFINE_STAT (STAT_D3D12NumCommandAllocators)
 
 DEFINE_STAT (STAT_D3D12NumCommandLists)
 
 DEFINE_STAT (STAT_D3D12NumQueryHeaps)
 
 DEFINE_STAT (STAT_D3D12NumPSOs)
 
 DEFINE_STAT (STAT_D3D12ExecutedCommandLists)
 
 DEFINE_STAT (STAT_D3D12ExecutedCommandListBatches)
 
 DEFINE_STAT (STAT_D3D12TexturesAllocated)
 
 DEFINE_STAT (STAT_D3D12TexturesReleased)
 
 DEFINE_STAT (STAT_D3D12CreateTextureTime)
 
 DEFINE_STAT (STAT_D3D12LockTextureTime)
 
 DEFINE_STAT (STAT_D3D12UnlockTextureTime)
 
 DEFINE_STAT (STAT_D3D12CreateBufferTime)
 
 DEFINE_STAT (STAT_D3D12CopyToStagingBufferTime)
 
 DEFINE_STAT (STAT_D3D12LockBufferTime)
 
 DEFINE_STAT (STAT_D3D12UnlockBufferTime)
 
 DEFINE_STAT (STAT_D3D12CommitTransientResourceTime)
 
 DEFINE_STAT (STAT_D3D12DecommitTransientResourceTime)
 
 DEFINE_STAT (STAT_D3D12UAVBarriers)
 
 DEFINE_STAT (STAT_D3D12BindlessResourceHeapsAllocated)
 
 DEFINE_STAT (STAT_D3D12BindlessResourceHeapsActive)
 
 DEFINE_STAT (STAT_D3D12BindlessResourceHeapsInUseByGPU)
 
 DEFINE_STAT (STAT_D3D12BindlessResourceHeapsVersioned)
 
 DEFINE_STAT (STAT_D3D12BindlessResourceDescriptorsInitialized)
 
 DEFINE_STAT (STAT_D3D12BindlessResourceDescriptorsUpdated)
 
 DEFINE_STAT (STAT_D3D12BindlessResourceGPUDescriptorsCopied)
 
 DEFINE_STAT (STAT_D3D12BindlessResourceHeapGPUMemoryUsage)
 
 DEFINE_STAT (STAT_D3D12NewBoundShaderStateTime)
 
 DEFINE_STAT (STAT_D3D12CreateBoundShaderStateTime)
 
 DEFINE_STAT (STAT_D3D12NumBoundShaderState)
 
 DEFINE_STAT (STAT_D3D12SetBoundShaderState)
 
 DEFINE_STAT (STAT_D3D12UpdateUniformBufferTime)
 
 DEFINE_STAT (STAT_D3D12CommitResourceTables)
 
 DEFINE_STAT (STAT_D3D12SetTextureInTableCalls)
 
 DEFINE_STAT (STAT_D3D12DispatchShaderBundle)
 
 DEFINE_STAT (STAT_D3D12ClearShaderResourceViewsTime)
 
 DEFINE_STAT (STAT_D3D12SetShaderResourceViewTime)
 
 DEFINE_STAT (STAT_D3D12SetUnorderedAccessViewTime)
 
 DEFINE_STAT (STAT_D3D12CommitGraphicsConstants)
 
 DEFINE_STAT (STAT_D3D12CommitComputeConstants)
 
 DEFINE_STAT (STAT_D3D12SetShaderUniformBuffer)
 
 DEFINE_STAT (STAT_D3D12ApplyStateTime)
 
 DEFINE_STAT (STAT_D3D12ApplyStateRebuildPSOTime)
 
 DEFINE_STAT (STAT_D3D12ApplyStateFindPSOTime)
 
 DEFINE_STAT (STAT_D3D12ApplyStateSetSRVTime)
 
 DEFINE_STAT (STAT_D3D12ApplyStateSetUAVTime)
 
 DEFINE_STAT (STAT_D3D12ApplyStateSetVertexBufferTime)
 
 DEFINE_STAT (STAT_D3D12ApplyStateSetConstantBufferTime)
 
 DEFINE_STAT (STAT_D3D12ClearMRT)
 
 DEFINE_STAT (STAT_D3D12ExecuteCommandListTime)
 
 DEFINE_STAT (STAT_D3D12WaitForFenceTime)
 
 DEFINE_STAT (STAT_D3D12MemoryCurrentTotal)
 
 DEFINE_STAT (STAT_D3D12RenderTargets)
 
 DEFINE_STAT (STAT_D3D12UAVTextures)
 
 DEFINE_STAT (STAT_D3D12Textures)
 
 DEFINE_STAT (STAT_D3D12UAVBuffers)
 
 DEFINE_STAT (STAT_D3D12RTBuffers)
 
 DEFINE_STAT (STAT_D3D12Buffer)
 
 DEFINE_STAT (STAT_D3D12TransientHeaps)
 
 DEFINE_STAT (STAT_D3D12RenderTargetStandAloneAllocated)
 
 DEFINE_STAT (STAT_D3D12UAVTextureStandAloneAllocated)
 
 DEFINE_STAT (STAT_D3D12TextureStandAloneAllocated)
 
 DEFINE_STAT (STAT_D3D12UAVBufferStandAloneAllocated)
 
 DEFINE_STAT (STAT_D3D12BufferStandAloneAllocated)
 
 DEFINE_STAT (STAT_D3D12RenderTargetStandAloneCount)
 
 DEFINE_STAT (STAT_D3D12UAVTextureStandAloneCount)
 
 DEFINE_STAT (STAT_D3D12TextureStandAloneCount)
 
 DEFINE_STAT (STAT_D3D12UAVBufferStandAloneCount)
 
 DEFINE_STAT (STAT_D3D12BufferStandAloneCount)
 
 DEFINE_STAT (STAT_D3D12TextureAllocatorAllocated)
 
 DEFINE_STAT (STAT_D3D12TextureAllocatorUnused)
 
 DEFINE_STAT (STAT_D3D12TextureAllocatorCount)
 
 DEFINE_STAT (STAT_D3D12BufferPoolMemoryAllocated)
 
 DEFINE_STAT (STAT_D3D12BufferPoolMemoryUsed)
 
 DEFINE_STAT (STAT_D3D12BufferPoolMemoryFree)
 
 DEFINE_STAT (STAT_D3D12BufferPoolAlignmentWaste)
 
 DEFINE_STAT (STAT_D3D12BufferPoolPageCount)
 
 DEFINE_STAT (STAT_D3D12BufferPoolFullPages)
 
 DEFINE_STAT (STAT_D3D12BufferPoolFragmentation)
 
 DEFINE_STAT (STAT_D3D12BufferPoolFragmentationPercentage)
 
 DEFINE_STAT (STAT_D3D12UploadPoolMemoryAllocated)
 
 DEFINE_STAT (STAT_D3D12UploadPoolMemoryUsed)
 
 DEFINE_STAT (STAT_D3D12UploadPoolMemoryFree)
 
 DEFINE_STAT (STAT_D3D12UploadPoolAlignmentWaste)
 
 DEFINE_STAT (STAT_D3D12UploadPoolPageCount)
 
 DEFINE_STAT (STAT_D3D12UploadPoolFullPages)
 
 DEFINE_STAT (STAT_D3D12ReservedResourcePhysical)
 
 DEFINE_STAT (STAT_UniqueSamplers)
 
 DEFINE_STAT (STAT_ViewHeapChanged)
 
 DEFINE_STAT (STAT_SamplerHeapChanged)
 
 DEFINE_STAT (STAT_NumViewOnlineDescriptorHeaps)
 
 DEFINE_STAT (STAT_NumSamplerOnlineDescriptorHeaps)
 
 DEFINE_STAT (STAT_NumReuseableSamplerOnlineDescriptorTables)
 
 DEFINE_STAT (STAT_NumReuseableSamplerOnlineDescriptors)
 
 DEFINE_STAT (STAT_NumReservedViewOnlineDescriptors)
 
 DEFINE_STAT (STAT_NumReservedSamplerOnlineDescriptors)
 
 DEFINE_STAT (STAT_NumReusedSamplerOnlineDescriptors)
 
 DEFINE_STAT (STAT_GlobalViewHeapFreeDescriptors)
 
 DEFINE_STAT (STAT_GlobalViewHeapReservedDescriptors)
 
 DEFINE_STAT (STAT_GlobalViewHeapUsedDescriptors)
 
 DEFINE_STAT (STAT_GlobalViewHeapWastedDescriptors)
 
 DEFINE_STAT (STAT_GlobalViewHeapBlockAllocations)
 
 DEFINE_STAT (STAT_ViewOnlineDescriptorHeapMemory)
 
 DEFINE_STAT (STAT_SamplerOnlineDescriptorHeapMemory)
 
 DEFINE_STAT (STAT_ExplicitSamplerDescriptorHeaps)
 
 DEFINE_STAT (STAT_ExplicitSamplerDescriptors)
 
 DEFINE_STAT (STAT_ExplicitViewDescriptorHeaps)
 
 DEFINE_STAT (STAT_ExplicitViewDescriptors)
 
 DEFINE_STAT (STAT_ExplicitMaxUsedSamplerDescriptors)
 
 DEFINE_STAT (STAT_ExplicitUsedSamplerDescriptors)
 
 DEFINE_STAT (STAT_ExplicitUsedViewDescriptors)
 

Variables

CORE_API bool GIsGPUCrashed
 

Macro Definition Documentation

◆ D3D12RHI_GPU_CRASH_LOG_VERBOSITY

#define D3D12RHI_GPU_CRASH_LOG_VERBOSITY   Error

◆ D3DERR

#define D3DERR (   x)    case x: ErrorCodeText = TEXT(#x); break;

◆ LOCTEXT_NAMESPACE

#define LOCTEXT_NAMESPACE   "Developer.MessageLog"

Function Documentation

◆ DEFINE_STAT() [1/112]

◆ DEFINE_STAT() [2/112]

◆ DEFINE_STAT() [3/112]

◆ DEFINE_STAT() [4/112]

DEFINE_STAT ( STAT_D3D12ApplyStateSetSRVTime  )

◆ DEFINE_STAT() [5/112]

DEFINE_STAT ( STAT_D3D12ApplyStateSetUAVTime  )

◆ DEFINE_STAT() [6/112]

◆ DEFINE_STAT() [7/112]

DEFINE_STAT ( STAT_D3D12ApplyStateTime  )

◆ DEFINE_STAT() [8/112]

◆ DEFINE_STAT() [9/112]

◆ DEFINE_STAT() [10/112]

◆ DEFINE_STAT() [11/112]

◆ DEFINE_STAT() [12/112]

◆ DEFINE_STAT() [13/112]

◆ DEFINE_STAT() [14/112]

◆ DEFINE_STAT() [15/112]

◆ DEFINE_STAT() [16/112]

DEFINE_STAT ( STAT_D3D12Buffer  )

◆ DEFINE_STAT() [17/112]

◆ DEFINE_STAT() [18/112]

◆ DEFINE_STAT() [19/112]

◆ DEFINE_STAT() [20/112]

DEFINE_STAT ( STAT_D3D12BufferPoolFullPages  )

◆ DEFINE_STAT() [21/112]

◆ DEFINE_STAT() [22/112]

DEFINE_STAT ( STAT_D3D12BufferPoolMemoryFree  )

◆ DEFINE_STAT() [23/112]

DEFINE_STAT ( STAT_D3D12BufferPoolMemoryUsed  )

◆ DEFINE_STAT() [24/112]

DEFINE_STAT ( STAT_D3D12BufferPoolPageCount  )

◆ DEFINE_STAT() [25/112]

◆ DEFINE_STAT() [26/112]

◆ DEFINE_STAT() [27/112]

DEFINE_STAT ( STAT_D3D12ClearMRT  )

◆ DEFINE_STAT() [28/112]

◆ DEFINE_STAT() [29/112]

◆ DEFINE_STAT() [30/112]

◆ DEFINE_STAT() [31/112]

DEFINE_STAT ( STAT_D3D12CommitResourceTables  )

◆ DEFINE_STAT() [32/112]

◆ DEFINE_STAT() [33/112]

◆ DEFINE_STAT() [34/112]

◆ DEFINE_STAT() [35/112]

DEFINE_STAT ( STAT_D3D12CreateBufferTime  )

◆ DEFINE_STAT() [36/112]

DEFINE_STAT ( STAT_D3D12CreateTextureTime  )

◆ DEFINE_STAT() [37/112]

DEFINE_STAT ( STAT_D3D12CustomPresentTime  )

◆ DEFINE_STAT() [38/112]

◆ DEFINE_STAT() [39/112]

DEFINE_STAT ( STAT_D3D12DispatchShaderBundle  )

◆ DEFINE_STAT() [40/112]

◆ DEFINE_STAT() [41/112]

◆ DEFINE_STAT() [42/112]

DEFINE_STAT ( STAT_D3D12ExecutedCommandLists  )

◆ DEFINE_STAT() [43/112]

DEFINE_STAT ( STAT_D3D12LockBufferTime  )

◆ DEFINE_STAT() [44/112]

DEFINE_STAT ( STAT_D3D12LockTextureTime  )

◆ DEFINE_STAT() [45/112]

DEFINE_STAT ( STAT_D3D12MemoryCurrentTotal  )

◆ DEFINE_STAT() [46/112]

◆ DEFINE_STAT() [47/112]

DEFINE_STAT ( STAT_D3D12NumBoundShaderState  )

◆ DEFINE_STAT() [48/112]

DEFINE_STAT ( STAT_D3D12NumCommandAllocators  )

◆ DEFINE_STAT() [49/112]

DEFINE_STAT ( STAT_D3D12NumCommandLists  )

◆ DEFINE_STAT() [50/112]

DEFINE_STAT ( STAT_D3D12NumPSOs  )

◆ DEFINE_STAT() [51/112]

DEFINE_STAT ( STAT_D3D12NumQueryHeaps  )

◆ DEFINE_STAT() [52/112]

DEFINE_STAT ( STAT_D3D12PresentTime  )

◆ DEFINE_STAT() [53/112]

DEFINE_STAT ( STAT_D3D12RenderTargets  )

◆ DEFINE_STAT() [54/112]

◆ DEFINE_STAT() [55/112]

◆ DEFINE_STAT() [56/112]

◆ DEFINE_STAT() [57/112]

DEFINE_STAT ( STAT_D3D12RTBuffers  )

◆ DEFINE_STAT() [58/112]

DEFINE_STAT ( STAT_D3D12SetBoundShaderState  )

◆ DEFINE_STAT() [59/112]

◆ DEFINE_STAT() [60/112]

◆ DEFINE_STAT() [61/112]

◆ DEFINE_STAT() [62/112]

◆ DEFINE_STAT() [63/112]

◆ DEFINE_STAT() [64/112]

◆ DEFINE_STAT() [65/112]

◆ DEFINE_STAT() [66/112]

DEFINE_STAT ( STAT_D3D12Textures  )

◆ DEFINE_STAT() [67/112]

DEFINE_STAT ( STAT_D3D12TexturesAllocated  )

◆ DEFINE_STAT() [68/112]

DEFINE_STAT ( STAT_D3D12TexturesReleased  )

◆ DEFINE_STAT() [69/112]

◆ DEFINE_STAT() [70/112]

◆ DEFINE_STAT() [71/112]

DEFINE_STAT ( STAT_D3D12TransientHeaps  )

◆ DEFINE_STAT() [72/112]

DEFINE_STAT ( STAT_D3D12UAVBarriers  )

◆ DEFINE_STAT() [73/112]

DEFINE_STAT ( STAT_D3D12UAVBuffers  )

◆ DEFINE_STAT() [74/112]

◆ DEFINE_STAT() [75/112]

◆ DEFINE_STAT() [76/112]

DEFINE_STAT ( STAT_D3D12UAVTextures  )

◆ DEFINE_STAT() [77/112]

◆ DEFINE_STAT() [78/112]

◆ DEFINE_STAT() [79/112]

DEFINE_STAT ( STAT_D3D12UnlockBufferTime  )

◆ DEFINE_STAT() [80/112]

DEFINE_STAT ( STAT_D3D12UnlockTextureTime  )

◆ DEFINE_STAT() [81/112]

◆ DEFINE_STAT() [82/112]

◆ DEFINE_STAT() [83/112]

DEFINE_STAT ( STAT_D3D12UploadPoolFullPages  )

◆ DEFINE_STAT() [84/112]

◆ DEFINE_STAT() [85/112]

DEFINE_STAT ( STAT_D3D12UploadPoolMemoryFree  )

◆ DEFINE_STAT() [86/112]

DEFINE_STAT ( STAT_D3D12UploadPoolMemoryUsed  )

◆ DEFINE_STAT() [87/112]

DEFINE_STAT ( STAT_D3D12UploadPoolPageCount  )

◆ DEFINE_STAT() [88/112]

DEFINE_STAT ( STAT_D3D12WaitForFenceTime  )

◆ DEFINE_STAT() [89/112]

◆ DEFINE_STAT() [90/112]

◆ DEFINE_STAT() [91/112]

◆ DEFINE_STAT() [92/112]

◆ DEFINE_STAT() [93/112]

◆ DEFINE_STAT() [94/112]

◆ DEFINE_STAT() [95/112]

DEFINE_STAT ( STAT_ExplicitViewDescriptors  )

◆ DEFINE_STAT() [96/112]

◆ DEFINE_STAT() [97/112]

◆ DEFINE_STAT() [98/112]

◆ DEFINE_STAT() [99/112]

◆ DEFINE_STAT() [100/112]

◆ DEFINE_STAT() [101/112]

◆ DEFINE_STAT() [102/112]

◆ DEFINE_STAT() [103/112]

◆ DEFINE_STAT() [104/112]

◆ DEFINE_STAT() [105/112]

◆ DEFINE_STAT() [106/112]

◆ DEFINE_STAT() [107/112]

◆ DEFINE_STAT() [108/112]

DEFINE_STAT ( STAT_SamplerHeapChanged  )

◆ DEFINE_STAT() [109/112]

◆ DEFINE_STAT() [110/112]

DEFINE_STAT ( STAT_UniqueSamplers  )

◆ DEFINE_STAT() [111/112]

DEFINE_STAT ( STAT_ViewHeapChanged  )

◆ DEFINE_STAT() [112/112]

◆ GetD312ObjectName()

FString GetD312ObjectName ( ID3D12Object *const  Object)

◆ LogExecuteCommandLists()

void LogExecuteCommandLists ( uint32  NumCommandLists,
ID3D12CommandList *const *  ppCommandLists 
)

◆ NeedsAgsIntrinsicsSpace()

bool NeedsAgsIntrinsicsSpace ( const FD3D12ShaderData ShaderData)

◆ SetD3D12ObjectName()

void SetD3D12ObjectName ( ID3D12Object Object,
const TCHAR Name 
)

◆ SetD3D12ResourceName() [1/4]

void SetD3D12ResourceName ( FD3D12Buffer Buffer,
const TCHAR Name 
)

◆ SetD3D12ResourceName() [2/4]

void SetD3D12ResourceName ( FD3D12Resource Resource,
const TCHAR Name 
)

◆ SetD3D12ResourceName() [3/4]

void SetD3D12ResourceName ( FD3D12ResourceLocation ResourceLocation,
const TCHAR Name 
)

◆ SetD3D12ResourceName() [4/4]

void SetD3D12ResourceName ( FD3D12Texture Texture,
const TCHAR Name 
)

◆ ShouldSetD3D12ResourceName()

bool ShouldSetD3D12ResourceName ( const FD3D12ResourceLocation ResourceLocation)

Variable Documentation

◆ GIsGPUCrashed

CORE_API bool GIsGPUCrashed
extern