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

#include <VulkanGenericPlatform.h>

+ Inheritance diagram for FVulkanGenericPlatform:

Static Public Member Functions

static bool IsSupported ()
 
static bool LoadVulkanLibrary ()
 
static bool LoadVulkanInstanceFunctions (VkInstance inInstance)
 
static void ClearVulkanInstanceFunctions ()
 
static void FreeVulkanLibrary ()
 
static void InitDevice (FVulkanDevice *InDevice)
 
static void PostInitGPU (const FVulkanDevice &InDevice)
 
static void NotifyFoundInstanceLayersAndExtensions (const TArray< const ANSICHAR * > &Layers, const TArray< const ANSICHAR * > &Extensions)
 
static void NotifyFoundDeviceLayersAndExtensions (VkPhysicalDevice PhysicalDevice, const TArray< const ANSICHAR * > &Layers, const TArray< const ANSICHAR * > &Extensions)
 
static void GetInstanceExtensions (FVulkanInstanceExtensionArray &OutExtensions)
 
static void GetInstanceLayers (TArray< const ANSICHAR * > &OutLayers)
 
static void GetDeviceExtensions (FVulkanDevice *Device, FVulkanDeviceExtensionArray &OutExtensions)
 
static void GetDeviceLayers (TArray< const ANSICHAR * > &OutLayers)
 
static void OnGPUCrash (const TCHAR *Message)
 
static void CreateSurface (VkSurfaceKHR *OutSurface)
 
static bool SupportsBCTextureFormats ()
 
static bool SupportsASTCTextureFormats ()
 
static bool SupportsETC2TextureFormats ()
 
static bool SupportsR16UnormTextureFormat ()
 
static bool SupportsQuerySurfaceProperties ()
 
static void SetupFeatureLevels (TArrayView< EShaderPlatform > ShaderPlatformForFeatureLevel)
 
static bool SupportsTimestampRenderQueries ()
 
static bool HasCustomFrameTiming ()
 
static bool RequiresMobileRenderer ()
 
static ERHIFeatureLevel::Type GetFeatureLevel (ERHIFeatureLevel::Type RequestedFeatureLevel)
 
static void OverridePlatformHandlers (bool bInit)
 
static bool RequiresPresentLayoutFix ()
 
static bool SupportsDeviceLocalHostVisibleWithNoPenalty (EGpuVendorId VendorId)
 
static bool HasUnifiedMemory ()
 
static bool RegisterGPUWork ()
 
static void RestrictEnabledPhysicalDeviceFeatures (FVulkanPhysicalDeviceFeatures *InOutFeaturesToEnable)
 
static bool SupportParallelRenderingTasks ()
 
static bool SupportsDynamicResolution ()
 
static bool SupportsVolumeTextureRendering ()
 
static bool RequiresSwapchainGeneralInitialLayout ()
 
static bool FramePace (FVulkanDevice &Device, void *WindowHandle, VkSwapchainKHR Swapchain, uint32 PresentID, VkPresentInfoKHR &Info)
 
static VkResult Present (VkQueue Queue, VkPresentInfoKHR &PresentInfo)
 
static VkResult CreateSwapchainKHR (FVulkanGenericPlatformWindowContext &WindowContext, VkPhysicalDevice PhysicalDevice, VkDevice Device, const VkSwapchainCreateInfoKHR *CreateInfo, const VkAllocationCallbacks *Allocator, VkSwapchainKHR *Swapchain)
 
static void DestroySwapchainKHR (VkDevice Device, VkSwapchainKHR Swapchain, const VkAllocationCallbacks *Allocator)
 
static bool RecreateSwapchainOnFail ()
 
static bool RequiresWaitingForFrameCompletionEvent ()
 
static bool SupportsNullPixelShader ()
 
static bool RequiresDepthStencilFullWrite ()
 
static bool RequiresMergedDepthStencilLayout ()
 
static bool PSOBinaryCacheMatches (FVulkanDevice *Device, const TArray< uint8 > &DeviceCache)
 
static FString CreatePSOBinaryCacheFilename (FVulkanDevice *Device, FString CacheFilename)
 
static FString GetCompiledPSOCacheTopFolderPath ()
 
static TArray< FString > GetPSOCacheFilenames ()
 
static VkPipelineCache PrecompilePSO (FVulkanDevice *Device, const uint8 *OptionalPSOCacheData, VkGraphicsPipelineCreateInfo *PipelineInfo, const FGfxPipelineDesc *GfxEntry, const FVulkanRenderTargetLayout *RTLayout, TArrayView< uint32_t > VS, TArrayView< uint32_t > PS, size_t &AfterSize, FString *FailureMessageOUT=nullptr)
 
static VkBool32 DebugReportFunction (VkDebugReportFlagsEXT MsgFlags, VkDebugReportObjectTypeEXT ObjType, uint64_t SrcObject, size_t Location, int32 MsgCode, const ANSICHAR *LayerPrefix, const ANSICHAR *Msg, void *UserData)
 
static void SetImageMemoryRequirementWorkaround (VkImageCreateInfo &ImageCreateInfo)
 
static bool SupportsProfileChecks ()
 
static FString GetVulkanProfileNameForFeatureLevel (ERHIFeatureLevel::Type FeatureLevel, bool bRaytracing)
 
static VkShaderStageFlags RequiredWaveOpsShaderStageFlags (VkShaderStageFlags VulkanDeviceShaderStageFlags)
 
static VkTimeDomainKHR GetTimeDomain ()
 

Member Function Documentation

◆ ClearVulkanInstanceFunctions()

void FVulkanGenericPlatform::ClearVulkanInstanceFunctions ( )
static

◆ CreatePSOBinaryCacheFilename()

FString FVulkanGenericPlatform::CreatePSOBinaryCacheFilename ( FVulkanDevice Device,
FString  CacheFilename 
)
static

◆ CreateSurface()

static void FVulkanGenericPlatform::CreateSurface ( VkSurfaceKHR OutSurface)
static

◆ CreateSwapchainKHR()

VkResult FVulkanGenericPlatform::CreateSwapchainKHR ( FVulkanGenericPlatformWindowContext WindowContext,
VkPhysicalDevice  PhysicalDevice,
VkDevice  Device,
const VkSwapchainCreateInfoKHR CreateInfo,
const VkAllocationCallbacks Allocator,
VkSwapchainKHR Swapchain 
)
static

◆ DebugReportFunction()

static VkBool32 FVulkanGenericPlatform::DebugReportFunction ( VkDebugReportFlagsEXT  MsgFlags,
VkDebugReportObjectTypeEXT  ObjType,
uint64_t  SrcObject,
size_t  Location,
int32  MsgCode,
const ANSICHAR LayerPrefix,
const ANSICHAR Msg,
void UserData 
)
inlinestatic

◆ DestroySwapchainKHR()

void FVulkanGenericPlatform::DestroySwapchainKHR ( VkDevice  Device,
VkSwapchainKHR  Swapchain,
const VkAllocationCallbacks Allocator 
)
static

◆ FramePace()

static bool FVulkanGenericPlatform::FramePace ( FVulkanDevice Device,
void WindowHandle,
VkSwapchainKHR  Swapchain,
uint32  PresentID,
VkPresentInfoKHR Info 
)
inlinestatic

◆ FreeVulkanLibrary()

static void FVulkanGenericPlatform::FreeVulkanLibrary ( )
inlinestatic

◆ GetCompiledPSOCacheTopFolderPath()

FString FVulkanGenericPlatform::GetCompiledPSOCacheTopFolderPath ( )
static

◆ GetDeviceExtensions()

static void FVulkanGenericPlatform::GetDeviceExtensions ( FVulkanDevice Device,
FVulkanDeviceExtensionArray OutExtensions 
)
static

◆ GetDeviceLayers()

static void FVulkanGenericPlatform::GetDeviceLayers ( TArray< const ANSICHAR * > &  OutLayers)
inlinestatic

◆ GetFeatureLevel()

ERHIFeatureLevel::Type FVulkanGenericPlatform::GetFeatureLevel ( ERHIFeatureLevel::Type  RequestedFeatureLevel)
static

◆ GetInstanceExtensions()

static void FVulkanGenericPlatform::GetInstanceExtensions ( FVulkanInstanceExtensionArray OutExtensions)
static

◆ GetInstanceLayers()

static void FVulkanGenericPlatform::GetInstanceLayers ( TArray< const ANSICHAR * > &  OutLayers)
inlinestatic

◆ GetPSOCacheFilenames()

TArray< FString > FVulkanGenericPlatform::GetPSOCacheFilenames ( )
static

◆ GetTimeDomain()

static VkTimeDomainKHR FVulkanGenericPlatform::GetTimeDomain ( )
inlinestatic

◆ GetVulkanProfileNameForFeatureLevel()

FString FVulkanGenericPlatform::GetVulkanProfileNameForFeatureLevel ( ERHIFeatureLevel::Type  FeatureLevel,
bool  bRaytracing 
)
static

◆ HasCustomFrameTiming()

static bool FVulkanGenericPlatform::HasCustomFrameTiming ( )
inlinestatic

◆ HasUnifiedMemory()

static bool FVulkanGenericPlatform::HasUnifiedMemory ( )
inlinestatic

◆ InitDevice()

static void FVulkanGenericPlatform::InitDevice ( FVulkanDevice InDevice)
inlinestatic

◆ IsSupported()

static bool FVulkanGenericPlatform::IsSupported ( )
inlinestatic

◆ LoadVulkanInstanceFunctions()

bool FVulkanGenericPlatform::LoadVulkanInstanceFunctions ( VkInstance  inInstance)
static

◆ LoadVulkanLibrary()

static bool FVulkanGenericPlatform::LoadVulkanLibrary ( )
inlinestatic

◆ NotifyFoundDeviceLayersAndExtensions()

static void FVulkanGenericPlatform::NotifyFoundDeviceLayersAndExtensions ( VkPhysicalDevice  PhysicalDevice,
const TArray< const ANSICHAR * > &  Layers,
const TArray< const ANSICHAR * > &  Extensions 
)
inlinestatic

◆ NotifyFoundInstanceLayersAndExtensions()

static void FVulkanGenericPlatform::NotifyFoundInstanceLayersAndExtensions ( const TArray< const ANSICHAR * > &  Layers,
const TArray< const ANSICHAR * > &  Extensions 
)
inlinestatic

◆ OnGPUCrash()

static void FVulkanGenericPlatform::OnGPUCrash ( const TCHAR Message)
inlinestatic

◆ OverridePlatformHandlers()

static void FVulkanGenericPlatform::OverridePlatformHandlers ( bool  bInit)
inlinestatic

◆ PostInitGPU()

static void FVulkanGenericPlatform::PostInitGPU ( const FVulkanDevice InDevice)
inlinestatic

◆ PrecompilePSO()

static VkPipelineCache FVulkanGenericPlatform::PrecompilePSO ( FVulkanDevice Device,
const uint8 OptionalPSOCacheData,
VkGraphicsPipelineCreateInfo PipelineInfo,
const FGfxPipelineDesc GfxEntry,
const FVulkanRenderTargetLayout RTLayout,
TArrayView< uint32_t VS,
TArrayView< uint32_t PS,
size_t AfterSize,
FString *  FailureMessageOUT = nullptr 
)
inlinestatic

◆ Present()

VkResult FVulkanGenericPlatform::Present ( VkQueue  Queue,
VkPresentInfoKHR PresentInfo 
)
static

◆ PSOBinaryCacheMatches()

bool FVulkanGenericPlatform::PSOBinaryCacheMatches ( FVulkanDevice Device,
const TArray< uint8 > &  DeviceCache 
)
static

◆ RecreateSwapchainOnFail()

static bool FVulkanGenericPlatform::RecreateSwapchainOnFail ( )
inlinestatic

◆ RegisterGPUWork()

static bool FVulkanGenericPlatform::RegisterGPUWork ( )
inlinestatic

◆ RequiredWaveOpsShaderStageFlags()

static VkShaderStageFlags FVulkanGenericPlatform::RequiredWaveOpsShaderStageFlags ( VkShaderStageFlags  VulkanDeviceShaderStageFlags)
inlinestatic

◆ RequiresDepthStencilFullWrite()

static bool FVulkanGenericPlatform::RequiresDepthStencilFullWrite ( )
inlinestatic

◆ RequiresMergedDepthStencilLayout()

static bool FVulkanGenericPlatform::RequiresMergedDepthStencilLayout ( )
inlinestatic

◆ RequiresMobileRenderer()

static bool FVulkanGenericPlatform::RequiresMobileRenderer ( )
inlinestatic

◆ RequiresPresentLayoutFix()

static bool FVulkanGenericPlatform::RequiresPresentLayoutFix ( )
inlinestatic

◆ RequiresSwapchainGeneralInitialLayout()

static bool FVulkanGenericPlatform::RequiresSwapchainGeneralInitialLayout ( )
inlinestatic

◆ RequiresWaitingForFrameCompletionEvent()

static bool FVulkanGenericPlatform::RequiresWaitingForFrameCompletionEvent ( )
inlinestatic

◆ RestrictEnabledPhysicalDeviceFeatures()

void FVulkanGenericPlatform::RestrictEnabledPhysicalDeviceFeatures ( FVulkanPhysicalDeviceFeatures InOutFeaturesToEnable)
static

◆ SetImageMemoryRequirementWorkaround()

static void FVulkanGenericPlatform::SetImageMemoryRequirementWorkaround ( VkImageCreateInfo ImageCreateInfo)
inlinestatic

◆ SetupFeatureLevels()

void FVulkanGenericPlatform::SetupFeatureLevels ( TArrayView< EShaderPlatform ShaderPlatformForFeatureLevel)
static

◆ SupportParallelRenderingTasks()

static bool FVulkanGenericPlatform::SupportParallelRenderingTasks ( )
inlinestatic

◆ SupportsASTCTextureFormats()

static bool FVulkanGenericPlatform::SupportsASTCTextureFormats ( )
inlinestatic

◆ SupportsBCTextureFormats()

static bool FVulkanGenericPlatform::SupportsBCTextureFormats ( )
inlinestatic

◆ SupportsDeviceLocalHostVisibleWithNoPenalty()

static bool FVulkanGenericPlatform::SupportsDeviceLocalHostVisibleWithNoPenalty ( EGpuVendorId  VendorId)
inlinestatic

◆ SupportsDynamicResolution()

static bool FVulkanGenericPlatform::SupportsDynamicResolution ( )
inlinestatic

The status quo is false, so the default is chosen to not change it. As platforms opt in it may be better to flip the default.

◆ SupportsETC2TextureFormats()

static bool FVulkanGenericPlatform::SupportsETC2TextureFormats ( )
inlinestatic

◆ SupportsNullPixelShader()

static bool FVulkanGenericPlatform::SupportsNullPixelShader ( )
inlinestatic

◆ SupportsProfileChecks()

bool FVulkanGenericPlatform::SupportsProfileChecks ( )
static

◆ SupportsQuerySurfaceProperties()

static bool FVulkanGenericPlatform::SupportsQuerySurfaceProperties ( )
inlinestatic

◆ SupportsR16UnormTextureFormat()

static bool FVulkanGenericPlatform::SupportsR16UnormTextureFormat ( )
inlinestatic

◆ SupportsTimestampRenderQueries()

static bool FVulkanGenericPlatform::SupportsTimestampRenderQueries ( )
inlinestatic

◆ SupportsVolumeTextureRendering()

static bool FVulkanGenericPlatform::SupportsVolumeTextureRendering ( )
inlinestatic

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