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

#include <VulkanDevice.h>

Public Member Functions

 FVulkanDevice (FVulkanDynamicRHI *InRHI, VkPhysicalDevice Gpu)
 
 ~FVulkanDevice ()
 
void InitGPU ()
 
void CreateDevice (TArray< const ANSICHAR * > &DeviceLayers, FVulkanDeviceExtensionArray &UEExtensions)
 
void ChooseVariableRateShadingMethod ()
 
void PrepareForDestroy ()
 
void Destroy ()
 
void WaitUntilIdle ()
 
EGpuVendorId GetVendorId () const
 
bool HasAsyncComputeQueue () const
 
bool HasTransferQueue () const
 
bool HasMultipleQueues () const
 
bool CanPresentOnComputeQueue () const
 
FVulkanQueueGetQueue (ERHIPipeline Pipeline)
 
FVulkanQueueGetQueue (EVulkanQueueType QueueType)
 
FVulkanQueueGetGraphicsQueue ()
 
FVulkanQueueGetComputeQueue ()
 
FVulkanQueueGetTransferQueue ()
 
FVulkanQueueGetPresentQueue ()
 
void ForEachQueue (TFunctionRef< void(FVulkanQueue &)> Callback)
 
VkPhysicalDevice GetPhysicalHandle () const
 
const VkPhysicalDevicePropertiesGetDeviceProperties () const
 
VkExtent2D GetBestMatchedFragmentSize (EVRSShadingRate Rate) const
 
const VkPhysicalDeviceLimitsGetLimits () const
 
const VkPhysicalDeviceIDPropertiesKHRGetDeviceIdProperties () const
 
const VkPhysicalDeviceSubgroupPropertiesGetDeviceSubgroupProperties () const
 
FVulkanRayTracingCompactionRequestHandlerGetRayTracingCompactionRequestHandler ()
 
FVulkanRayTracingPipelineLibraryCacheGetRayTracingPipelineLibraryCache ()
 
void InitializeRayTracing ()
 
void CleanUpRayTracing ()
 
const FVulkanPhysicalDeviceFeaturesGetPhysicalDeviceFeatures () const
 
bool HasUnifiedMemory () const
 
bool SupportsBindless () const
 
const VkComponentMappingGetFormatComponentMapping (EPixelFormat UEFormat) const
 
VkDevice GetHandle () const
 
const FVulkanSamplerStateGetDefaultSampler () const
 
const VkFormatPropertiesGetFormatProperties (VkFormat InFormat) const
 
VulkanRHI::FDeviceMemoryManagerGetDeviceMemoryManager ()
 
const VkPhysicalDeviceMemoryPropertiesGetDeviceMemoryProperties () const
 
VulkanRHI::FMemoryManagerGetMemoryManager ()
 
VulkanRHI::FDeferredDeletionQueue2 & GetDeferredDeletionQueue ()
 
VulkanRHI::FStagingManagerGetStagingManager ()
 
FVulkanFenceManagerGetFenceManager ()
 
VulkanRHI::FTempBlockAllocatorGetTempBlockAllocator ()
 
FVulkanRenderPassManagerGetRenderPassManager ()
 
FVulkanDescriptorSetCacheGetDescriptorSetCache ()
 
FVulkanDescriptorPoolsManagerGetDescriptorPoolsManager ()
 
FVulkanBindlessDescriptorManagerGetBindlessDescriptorManager ()
 
TMap< uint32, FSamplerStateRHIRef > & GetSamplerMap ()
 
FVulkanShaderFactoryGetShaderFactory ()
 
FVulkanCommandListContextImmediateGetImmediateContext ()
 
void NotifyDeletedImage (VkImage Image, bool bRenderTarget)
 
FVulkanQueryPoolAcquireOcclusionQueryPool (uint32 NumQueries)
 
FVulkanQueryPoolAcquireTimingQueryPool ()
 
void ReleaseQueryPool (FVulkanQueryPool *Pool)
 
void RemoveStaleQueryPools ()
 
class FVulkanPipelineStateCacheManagerGetPipelineStateCache ()
 
void NotifyDeletedGfxPipeline (class FVulkanGraphicsPipelineState *Pipeline)
 
void NotifyDeletedComputePipeline (class FVulkanComputePipeline *Pipeline)
 
void VulkanSetObjectName (VkObjectType Type, uint64_t Handle, const TCHAR *Name)
 
const FOptionalVulkanDeviceExtensionsGetOptionalExtensions () const
 
const FOptionalVulkanDeviceExtensionPropertiesGetOptionalExtensionProperties () const
 
bool NeedsAllPlanes () const
 
bool SupportsParallelRendering () const
 
bool SupportsGraphicPipelineLibraries () const
 
void SetupPresentQueue (VkSurfaceKHR Surface)
 
const TArray< VkQueueFamilyProperties > & GetQueueFamilyProps ()
 
FVulkanTransientHeapCacheGetOrCreateTransientHeapCache ()
 
const TArray< const ANSICHAR * > & GetDeviceExtensions ()
 
FGPUTimingCalibrationTimestamp GetCalibrationTimestamp ()
 
const FVulkanSamplerStateGetGlobalSamplers (FVulkanShaderHeader::EGlobalSamplerType Type) const
 
VkEvent GetBarrierEvent ()
 
void ReleaseBarrierEvent (VkEvent Handle)
 
VkBuffer CreateBuffer (VkDeviceSize BufferSize, VkBufferUsageFlags BufferUsageFlags, VkBufferCreateFlags BufferCreateFlags=0) const
 
const TArray< uint32 > & GetActiveQueueFamilies () const
 
bool UseMinimalSubmits () const
 

Friends

class FVulkanDynamicRHI
 
class FVulkanGraphicsPipelineState
 

Constructor & Destructor Documentation

◆ FVulkanDevice()

FVulkanDevice::FVulkanDevice ( FVulkanDynamicRHI InRHI,
VkPhysicalDevice  Gpu 
)

◆ ~FVulkanDevice()

FVulkanDevice::~FVulkanDevice ( )

Member Function Documentation

◆ AcquireOcclusionQueryPool()

FVulkanQueryPool * FVulkanDevice::AcquireOcclusionQueryPool ( uint32  NumQueries)

◆ AcquireTimingQueryPool()

FVulkanQueryPool * FVulkanDevice::AcquireTimingQueryPool ( )

◆ CanPresentOnComputeQueue()

bool FVulkanDevice::CanPresentOnComputeQueue ( ) const
inline

◆ ChooseVariableRateShadingMethod()

void FVulkanDevice::ChooseVariableRateShadingMethod ( )

◆ CleanUpRayTracing()

void FVulkanDevice::CleanUpRayTracing ( )

◆ CreateBuffer()

VkBuffer FVulkanDevice::CreateBuffer ( VkDeviceSize  BufferSize,
VkBufferUsageFlags  BufferUsageFlags,
VkBufferCreateFlags  BufferCreateFlags = 0 
) const

◆ CreateDevice()

void FVulkanDevice::CreateDevice ( TArray< const ANSICHAR * > &  DeviceLayers,
FVulkanDeviceExtensionArray UEExtensions 
)

◆ Destroy()

void FVulkanDevice::Destroy ( )

◆ ForEachQueue()

void FVulkanDevice::ForEachQueue ( TFunctionRef< void(FVulkanQueue &)>  Callback)

◆ GetActiveQueueFamilies()

const TArray< uint32 > & FVulkanDevice::GetActiveQueueFamilies ( ) const
inline

◆ GetBarrierEvent()

VkEvent FVulkanDevice::GetBarrierEvent ( )

◆ GetBestMatchedFragmentSize()

VkExtent2D FVulkanDevice::GetBestMatchedFragmentSize ( EVRSShadingRate  Rate) const
inline

◆ GetBindlessDescriptorManager()

FVulkanBindlessDescriptorManager * FVulkanDevice::GetBindlessDescriptorManager ( )
inline

◆ GetCalibrationTimestamp()

FGPUTimingCalibrationTimestamp FVulkanDevice::GetCalibrationTimestamp ( )

◆ GetComputeQueue()

FVulkanQueue * FVulkanDevice::GetComputeQueue ( )
inline

◆ GetDefaultSampler()

const FVulkanSamplerState & FVulkanDevice::GetDefaultSampler ( ) const
inline

◆ GetDeferredDeletionQueue()

VulkanRHI::FDeferredDeletionQueue2 & FVulkanDevice::GetDeferredDeletionQueue ( )
inline

◆ GetDescriptorPoolsManager()

FVulkanDescriptorPoolsManager & FVulkanDevice::GetDescriptorPoolsManager ( )
inline

◆ GetDescriptorSetCache()

FVulkanDescriptorSetCache & FVulkanDevice::GetDescriptorSetCache ( )
inline

◆ GetDeviceExtensions()

const TArray< const ANSICHAR * > & FVulkanDevice::GetDeviceExtensions ( )
inline

◆ GetDeviceIdProperties()

const VkPhysicalDeviceIDPropertiesKHR & FVulkanDevice::GetDeviceIdProperties ( ) const
inline

◆ GetDeviceMemoryManager()

VulkanRHI::FDeviceMemoryManager & FVulkanDevice::GetDeviceMemoryManager ( )
inline

◆ GetDeviceMemoryProperties()

const VkPhysicalDeviceMemoryProperties & FVulkanDevice::GetDeviceMemoryProperties ( ) const
inline

◆ GetDeviceProperties()

const VkPhysicalDeviceProperties & FVulkanDevice::GetDeviceProperties ( ) const
inline

◆ GetDeviceSubgroupProperties()

const VkPhysicalDeviceSubgroupProperties & FVulkanDevice::GetDeviceSubgroupProperties ( ) const
inline

◆ GetFenceManager()

FVulkanFenceManager & FVulkanDevice::GetFenceManager ( )
inline

◆ GetFormatComponentMapping()

const VkComponentMapping & FVulkanDevice::GetFormatComponentMapping ( EPixelFormat  UEFormat) const

◆ GetFormatProperties()

const VkFormatProperties & FVulkanDevice::GetFormatProperties ( VkFormat  InFormat) const

◆ GetGlobalSamplers()

const FVulkanSamplerState & FVulkanDevice::GetGlobalSamplers ( FVulkanShaderHeader::EGlobalSamplerType  Type) const
inline

◆ GetGraphicsQueue()

FVulkanQueue * FVulkanDevice::GetGraphicsQueue ( )
inline

◆ GetHandle()

VkDevice FVulkanDevice::GetHandle ( ) const
inline

◆ GetImmediateContext()

FVulkanCommandListContextImmediate & FVulkanDevice::GetImmediateContext ( )
inline

◆ GetLimits()

const VkPhysicalDeviceLimits & FVulkanDevice::GetLimits ( ) const
inline

◆ GetMemoryManager()

VulkanRHI::FMemoryManager & FVulkanDevice::GetMemoryManager ( )
inline

◆ GetOptionalExtensionProperties()

const FOptionalVulkanDeviceExtensionProperties & FVulkanDevice::GetOptionalExtensionProperties ( ) const
inline

◆ GetOptionalExtensions()

const FOptionalVulkanDeviceExtensions & FVulkanDevice::GetOptionalExtensions ( ) const
inline

◆ GetOrCreateTransientHeapCache()

FVulkanTransientHeapCache & FVulkanDevice::GetOrCreateTransientHeapCache ( )

◆ GetPhysicalDeviceFeatures()

const FVulkanPhysicalDeviceFeatures & FVulkanDevice::GetPhysicalDeviceFeatures ( ) const
inline

◆ GetPhysicalHandle()

VkPhysicalDevice FVulkanDevice::GetPhysicalHandle ( ) const
inline

◆ GetPipelineStateCache()

class FVulkanPipelineStateCacheManager * FVulkanDevice::GetPipelineStateCache ( )
inline

◆ GetPresentQueue()

FVulkanQueue * FVulkanDevice::GetPresentQueue ( )
inline

◆ GetQueue() [1/2]

FVulkanQueue * FVulkanDevice::GetQueue ( ERHIPipeline  Pipeline)
inline

◆ GetQueue() [2/2]

FVulkanQueue * FVulkanDevice::GetQueue ( EVulkanQueueType  QueueType)
inline

◆ GetQueueFamilyProps()

const TArray< VkQueueFamilyProperties > & FVulkanDevice::GetQueueFamilyProps ( )
inline

◆ GetRayTracingCompactionRequestHandler()

FVulkanRayTracingCompactionRequestHandler * FVulkanDevice::GetRayTracingCompactionRequestHandler ( )
inline

◆ GetRayTracingPipelineLibraryCache()

FVulkanRayTracingPipelineLibraryCache * FVulkanDevice::GetRayTracingPipelineLibraryCache ( )
inline

◆ GetRenderPassManager()

FVulkanRenderPassManager & FVulkanDevice::GetRenderPassManager ( )
inline

◆ GetSamplerMap()

TMap< uint32, FSamplerStateRHIRef > & FVulkanDevice::GetSamplerMap ( )
inline

◆ GetShaderFactory()

FVulkanShaderFactory & FVulkanDevice::GetShaderFactory ( )
inline

◆ GetStagingManager()

VulkanRHI::FStagingManager & FVulkanDevice::GetStagingManager ( )
inline

◆ GetTempBlockAllocator()

VulkanRHI::FTempBlockAllocator & FVulkanDevice::GetTempBlockAllocator ( )
inline

◆ GetTransferQueue()

FVulkanQueue * FVulkanDevice::GetTransferQueue ( )
inline

◆ GetVendorId()

EGpuVendorId FVulkanDevice::GetVendorId ( ) const
inline

◆ HasAsyncComputeQueue()

bool FVulkanDevice::HasAsyncComputeQueue ( ) const
inline

◆ HasMultipleQueues()

bool FVulkanDevice::HasMultipleQueues ( ) const
inline

◆ HasTransferQueue()

bool FVulkanDevice::HasTransferQueue ( ) const
inline

◆ HasUnifiedMemory()

bool FVulkanDevice::HasUnifiedMemory ( ) const
inline

◆ InitGPU()

void FVulkanDevice::InitGPU ( )

◆ InitializeRayTracing()

void FVulkanDevice::InitializeRayTracing ( )

◆ NeedsAllPlanes()

bool FVulkanDevice::NeedsAllPlanes ( ) const
inline

◆ NotifyDeletedComputePipeline()

void FVulkanDevice::NotifyDeletedComputePipeline ( class FVulkanComputePipeline Pipeline)

◆ NotifyDeletedGfxPipeline()

void FVulkanDevice::NotifyDeletedGfxPipeline ( class FVulkanGraphicsPipelineState Pipeline)

◆ NotifyDeletedImage()

void FVulkanDevice::NotifyDeletedImage ( VkImage  Image,
bool  bRenderTarget 
)

◆ PrepareForDestroy()

void FVulkanDevice::PrepareForDestroy ( )

◆ ReleaseBarrierEvent()

void FVulkanDevice::ReleaseBarrierEvent ( VkEvent  Handle)

◆ ReleaseQueryPool()

void FVulkanDevice::ReleaseQueryPool ( FVulkanQueryPool Pool)

◆ RemoveStaleQueryPools()

void FVulkanDevice::RemoveStaleQueryPools ( )

◆ SetupPresentQueue()

void FVulkanDevice::SetupPresentQueue ( VkSurfaceKHR  Surface)

◆ SupportsBindless()

bool FVulkanDevice::SupportsBindless ( ) const

◆ SupportsGraphicPipelineLibraries()

bool FVulkanDevice::SupportsGraphicPipelineLibraries ( ) const
inline

◆ SupportsParallelRendering()

bool FVulkanDevice::SupportsParallelRendering ( ) const
inline

◆ UseMinimalSubmits()

bool FVulkanDevice::UseMinimalSubmits ( ) const

◆ VulkanSetObjectName()

void FVulkanDevice::VulkanSetObjectName ( VkObjectType  Type,
uint64_t  Handle,
const TCHAR Name 
)

◆ WaitUntilIdle()

void FVulkanDevice::WaitUntilIdle ( )

Friends And Related Symbol Documentation

◆ FVulkanDynamicRHI

friend class FVulkanDynamicRHI
friend

◆ FVulkanGraphicsPipelineState


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