UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VulkanUtil.cpp File Reference
#include "VulkanRHIPrivate.h"
#include "VulkanUtil.h"
#include "VulkanPendingState.h"
#include "VulkanContext.h"
#include "VulkanMemory.h"
#include "Engine/GameEngine.h"
#include "Misc/App.h"
#include "Misc/OutputDeviceRedirector.h"
#include "RHIValidationContext.h"
#include "PipelineStateCache.h"
#include "Async/ParallelFor.h"
#include "HAL/FileManager.h"
#include "HAL/Runnable.h"
#include "HAL/RunnableThread.h"
#include "RenderCore.h"
#include "RHICoreNvidiaAftermath.h"
#include "VulkanRayTracing.h"
#include "VulkanQuery.h"

Namespaces

namespace  VulkanRHI
 

Macros

#define VKERRORCASE(x)   case x: ErrorString = TEXT(#x)
 
#define VULKAN_PRINT_ERROR_MSG(Verbosity)   UE_LOG(LogVulkanRHI, Verbosity, TEXT("%s"), *Message)
 

Functions

void SetVulkanResourceName (FVulkanDevice *Device, FVulkanTexture *Texture, const TCHAR *Name)
 
VkBuffer VulkanRHI::CreateBuffer (FVulkanDevice *InDevice, VkDeviceSize Size, VkBufferUsageFlags BufferUsageFlags, VkMemoryRequirements &OutMemoryRequirements)
 
void VulkanRHI::VerifyVulkanResult (VkResult Result, const ANSICHAR *VkFunction, const ANSICHAR *Filename, uint32 Line)
 
 DEFINE_STAT (STAT_VulkanNumPSOs)
 
 DEFINE_STAT (STAT_VulkanNumGraphicsPSOs)
 
 DEFINE_STAT (STAT_VulkanNumPSOLRU)
 
 DEFINE_STAT (STAT_VulkanNumPSOLRUSize)
 
 DEFINE_STAT (STAT_VulkanPSOLookupTime)
 
 DEFINE_STAT (STAT_VulkanPSOCreationTime)
 
 DEFINE_STAT (STAT_VulkanPSOHeaderInitTime)
 
 DEFINE_STAT (STAT_VulkanPSOVulkanCreationTime)
 
 DEFINE_STAT (STAT_VulkanNumComputePSOs)
 
 DEFINE_STAT (STAT_VulkanPSOKeyMemory)
 
 DEFINE_STAT (STAT_VulkanRegPSOCompileCount)
 
 DEFINE_STAT (STAT_VulkanLibPSOCompileCount)
 
 DEFINE_STAT (STAT_VulkanNumVertexInputLibs)
 
 DEFINE_STAT (STAT_VulkanNumVSLibs)
 
 DEFINE_STAT (STAT_VulkanNumMSLibs)
 
 DEFINE_STAT (STAT_VulkanNumPSLibs)
 
 DEFINE_STAT (STAT_VulkanNumFragOutputStateLibs)
 
 DEFINE_STAT (STAT_VulkanNumShaderModule)
 
 DEFINE_STAT (STAT_VulkanDrawCallTime)
 
 DEFINE_STAT (STAT_VulkanDispatchCallTime)
 
 DEFINE_STAT (STAT_VulkanDrawCallPrepareTime)
 
 DEFINE_STAT (STAT_VulkanCustomPresentTime)
 
 DEFINE_STAT (STAT_VulkanDispatchCallPrepareTime)
 
 DEFINE_STAT (STAT_VulkanGetOrCreatePipeline)
 
 DEFINE_STAT (STAT_VulkanGetDescriptorSet)
 
 DEFINE_STAT (STAT_VulkanPipelineBind)
 
 DEFINE_STAT (STAT_VulkanNumCmdBuffers)
 
 DEFINE_STAT (STAT_VulkanNumRenderPasses)
 
 DEFINE_STAT (STAT_VulkanNumFrameBuffers)
 
 DEFINE_STAT (STAT_VulkanNumBufferViews)
 
 DEFINE_STAT (STAT_VulkanNumImageViews)
 
 DEFINE_STAT (STAT_VulkanNumPhysicalMemAllocations)
 
 DEFINE_STAT (STAT_VulkanUniformBufferCreateTime)
 
 DEFINE_STAT (STAT_VulkanApplyPackedUniformBuffers)
 
 DEFINE_STAT (STAT_VulkanSRVUpdateTime)
 
 DEFINE_STAT (STAT_VulkanUAVUpdateTime)
 
 DEFINE_STAT (STAT_VulkanDeletionQueue)
 
 DEFINE_STAT (STAT_VulkanQueueSubmit)
 
 DEFINE_STAT (STAT_VulkanQueuePresent)
 
 DEFINE_STAT (STAT_VulkanNumQueries)
 
 DEFINE_STAT (STAT_VulkanNumQueryPools)
 
 DEFINE_STAT (STAT_VulkanWaitFence)
 
 DEFINE_STAT (STAT_VulkanWaitSwapchain)
 
 DEFINE_STAT (STAT_VulkanAcquireBackBuffer)
 
 DEFINE_STAT (STAT_VulkanStagingBuffer)
 
 DEFINE_STAT (STAT_VulkanVkCreateDescriptorPool)
 
 DEFINE_STAT (STAT_VulkanNumDescPools)
 
 DEFINE_STAT (STAT_VulkanUpdateUniformBuffers)
 
 DEFINE_STAT (STAT_VulkanUpdateUniformBuffersRename)
 
 DEFINE_STAT (STAT_VulkanNumPooledBarrierEvents)
 
 DEFINE_STAT (STAT_VulkanNumDescSetsTotal)
 

Variables

FVulkanDynamicRHIGVulkanRHI = nullptr
 
CORE_API bool GIsGPUCrashed
 
int32 GAllowTimelineSemaphores
 

Macro Definition Documentation

◆ VKERRORCASE

#define VKERRORCASE (   x)    case x: ErrorString = TEXT(#x)

◆ VULKAN_PRINT_ERROR_MSG

#define VULKAN_PRINT_ERROR_MSG (   Verbosity)    UE_LOG(LogVulkanRHI, Verbosity, TEXT("%s"), *Message)

Function Documentation

◆ DEFINE_STAT() [1/51]

DEFINE_STAT ( STAT_VulkanAcquireBackBuffer  )

◆ DEFINE_STAT() [2/51]

◆ DEFINE_STAT() [3/51]

DEFINE_STAT ( STAT_VulkanCustomPresentTime  )

◆ DEFINE_STAT() [4/51]

DEFINE_STAT ( STAT_VulkanDeletionQueue  )

◆ DEFINE_STAT() [5/51]

◆ DEFINE_STAT() [6/51]

DEFINE_STAT ( STAT_VulkanDispatchCallTime  )

◆ DEFINE_STAT() [7/51]

DEFINE_STAT ( STAT_VulkanDrawCallPrepareTime  )

◆ DEFINE_STAT() [8/51]

DEFINE_STAT ( STAT_VulkanDrawCallTime  )

◆ DEFINE_STAT() [9/51]

DEFINE_STAT ( STAT_VulkanGetDescriptorSet  )

◆ DEFINE_STAT() [10/51]

DEFINE_STAT ( STAT_VulkanGetOrCreatePipeline  )

◆ DEFINE_STAT() [11/51]

DEFINE_STAT ( STAT_VulkanLibPSOCompileCount  )

◆ DEFINE_STAT() [12/51]

DEFINE_STAT ( STAT_VulkanNumBufferViews  )

◆ DEFINE_STAT() [13/51]

DEFINE_STAT ( STAT_VulkanNumCmdBuffers  )

◆ DEFINE_STAT() [14/51]

DEFINE_STAT ( STAT_VulkanNumComputePSOs  )

◆ DEFINE_STAT() [15/51]

DEFINE_STAT ( STAT_VulkanNumDescPools  )

◆ DEFINE_STAT() [16/51]

DEFINE_STAT ( STAT_VulkanNumDescSetsTotal  )

◆ DEFINE_STAT() [17/51]

◆ DEFINE_STAT() [18/51]

DEFINE_STAT ( STAT_VulkanNumFrameBuffers  )

◆ DEFINE_STAT() [19/51]

DEFINE_STAT ( STAT_VulkanNumGraphicsPSOs  )

◆ DEFINE_STAT() [20/51]

DEFINE_STAT ( STAT_VulkanNumImageViews  )

◆ DEFINE_STAT() [21/51]

DEFINE_STAT ( STAT_VulkanNumMSLibs  )

◆ DEFINE_STAT() [22/51]

◆ DEFINE_STAT() [23/51]

◆ DEFINE_STAT() [24/51]

DEFINE_STAT ( STAT_VulkanNumPSLibs  )

◆ DEFINE_STAT() [25/51]

DEFINE_STAT ( STAT_VulkanNumPSOLRU  )

◆ DEFINE_STAT() [26/51]

DEFINE_STAT ( STAT_VulkanNumPSOLRUSize  )

◆ DEFINE_STAT() [27/51]

DEFINE_STAT ( STAT_VulkanNumPSOs  )

◆ DEFINE_STAT() [28/51]

DEFINE_STAT ( STAT_VulkanNumQueries  )

◆ DEFINE_STAT() [29/51]

DEFINE_STAT ( STAT_VulkanNumQueryPools  )

◆ DEFINE_STAT() [30/51]

DEFINE_STAT ( STAT_VulkanNumRenderPasses  )

◆ DEFINE_STAT() [31/51]

DEFINE_STAT ( STAT_VulkanNumShaderModule  )

◆ DEFINE_STAT() [32/51]

DEFINE_STAT ( STAT_VulkanNumVertexInputLibs  )

◆ DEFINE_STAT() [33/51]

DEFINE_STAT ( STAT_VulkanNumVSLibs  )

◆ DEFINE_STAT() [34/51]

DEFINE_STAT ( STAT_VulkanPipelineBind  )

◆ DEFINE_STAT() [35/51]

DEFINE_STAT ( STAT_VulkanPSOCreationTime  )

◆ DEFINE_STAT() [36/51]

DEFINE_STAT ( STAT_VulkanPSOHeaderInitTime  )

◆ DEFINE_STAT() [37/51]

DEFINE_STAT ( STAT_VulkanPSOKeyMemory  )

◆ DEFINE_STAT() [38/51]

DEFINE_STAT ( STAT_VulkanPSOLookupTime  )

◆ DEFINE_STAT() [39/51]

◆ DEFINE_STAT() [40/51]

DEFINE_STAT ( STAT_VulkanQueuePresent  )

◆ DEFINE_STAT() [41/51]

DEFINE_STAT ( STAT_VulkanQueueSubmit  )

◆ DEFINE_STAT() [42/51]

DEFINE_STAT ( STAT_VulkanRegPSOCompileCount  )

◆ DEFINE_STAT() [43/51]

DEFINE_STAT ( STAT_VulkanSRVUpdateTime  )

◆ DEFINE_STAT() [44/51]

DEFINE_STAT ( STAT_VulkanStagingBuffer  )

◆ DEFINE_STAT() [45/51]

DEFINE_STAT ( STAT_VulkanUAVUpdateTime  )

◆ DEFINE_STAT() [46/51]

◆ DEFINE_STAT() [47/51]

◆ DEFINE_STAT() [48/51]

◆ DEFINE_STAT() [49/51]

◆ DEFINE_STAT() [50/51]

DEFINE_STAT ( STAT_VulkanWaitFence  )

◆ DEFINE_STAT() [51/51]

DEFINE_STAT ( STAT_VulkanWaitSwapchain  )

◆ SetVulkanResourceName()

void SetVulkanResourceName ( FVulkanDevice Device,
FVulkanTexture Texture,
const TCHAR Name 
)

Variable Documentation

◆ GAllowTimelineSemaphores

int32 GAllowTimelineSemaphores
extern

◆ GIsGPUCrashed

CORE_API bool GIsGPUCrashed
extern

◆ GVulkanRHI

FVulkanDynamicRHI* GVulkanRHI = nullptr