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

#include <VulkanDynamicRHI.h>

+ Inheritance diagram for FVulkanDynamicRHI:

Classes

struct  FCreateTextureResult
 

Public Types

enum class  EActiveDebugLayerExtension { None , GfxReconstructLayer , VkTraceLayer , DebugUtilsExtension }
 
- Public Types inherited from FDynamicRHI
using FRHICalcTextureSizeResult = ::FRHICalcTextureSizeResult
 

Public Member Functions

 FVulkanDynamicRHI ()
 
 ~FVulkanDynamicRHI ()
 
virtual uint32 RHIGetVulkanVersion () const final override
 
virtual VkInstance RHIGetVkInstance () const final override
 
virtual VkDevice RHIGetVkDevice () const final override
 
virtual const uint8RHIGetVulkanDeviceUUID () const final override
 
virtual VkPhysicalDevice RHIGetVkPhysicalDevice () const final override
 
virtual const VkAllocationCallbacksRHIGetVkAllocationCallbacks () final override
 
virtual VkQueue RHIGetGraphicsVkQueue () const final override
 
virtual uint32 RHIGetGraphicsQueueIndex () const final override
 
virtual uint32 RHIGetGraphicsQueueFamilyIndex () const final override
 
virtual VkCommandBuffer RHIGetActiveVkCommandBuffer () final override
 
virtual uint64 RHIGetGraphicsAdapterLUID (VkPhysicalDevice InPhysicalDevice) const final override
 
virtual bool RHIDoesAdapterMatchDevice (const void *InAdapterId) const final override
 
virtual voidRHIGetVkDeviceProcAddr (const char *InName) const final override
 
virtual voidRHIGetVkInstanceProcAddr (const char *InName) const final override
 
virtual voidRHIGetVkInstanceGlobalProcAddr (const char *InName) const final override
 
virtual VkFormat RHIGetSwapChainVkFormat (EPixelFormat InFormat) const final override
 
virtual bool RHISupportsEXTFragmentDensityMap2 () const final override
 
virtual TArray< VkExtensionPropertiesRHIGetAllInstanceExtensions () const final override
 
virtual TArray< VkExtensionPropertiesRHIGetAllDeviceExtensions (VkPhysicalDevice InPhysicalDevice) const final override
 
virtual TArray< FAnsiStringRHIGetLoadedDeviceExtensions () const final override
 
virtual FTextureRHIRef RHICreateTexture2DFromResource (EPixelFormat Format, uint32 SizeX, uint32 SizeY, uint32 NumMips, uint32 NumSamples, VkImage Resource, ETextureCreateFlags Flags, const FClearValueBinding &ClearValueBinding=FClearValueBinding::Transparent, const FVulkanRHIExternalImageDeleteCallbackInfo &ExternalImageDeleteCallbackInfo={}) final override
 
virtual FTextureRHIRef RHICreateTexture2DArrayFromResource (EPixelFormat Format, uint32 SizeX, uint32 SizeY, uint32 ArraySize, uint32 NumMips, uint32 NumSamples, VkImage Resource, ETextureCreateFlags Flags, const FClearValueBinding &ClearValueBinding=FClearValueBinding::Transparent) final override
 
virtual FTextureRHIRef RHICreateTextureCubeFromResource (EPixelFormat Format, uint32 Size, bool bArray, uint32 ArraySize, uint32 NumMips, VkImage Resource, ETextureCreateFlags Flags, const FClearValueBinding &ClearValueBinding=FClearValueBinding::Transparent) final override
 
virtual VkImage RHIGetVkImage (FRHITexture *InTexture) const final override
 
virtual VkFormat RHIGetViewVkFormat (FRHITexture *InTexture) const final override
 
virtual FVulkanRHIAllocationInfo RHIGetAllocationInfo (FRHITexture *InTexture) const final override
 
virtual FVulkanRHIImageViewInfo RHIGetImageViewInfo (FRHITexture *InTexture) const final override
 
virtual FVulkanRHIAllocationInfo RHIGetAllocationInfo (FRHIBuffer *InBuffer) const final override
 
virtual void RHISetImageLayout (VkImage Image, VkImageLayout OldLayout, VkImageLayout NewLayout, const VkImageSubresourceRange &SubresourceRange) final override
 
virtual void RHISetUploadImageLayout (VkImage Image, VkImageLayout OldLayout, VkImageLayout NewLayout, const VkImageSubresourceRange &SubresourceRange) final override
 
virtual void RHIFinishExternalComputeWork (VkCommandBuffer InCommandBuffer) final override
 
virtual void RHIRegisterWork (uint32 NumPrimitives) final override
 
virtual void RHISubmitUploadCommandBuffer () final override
 
virtual void RHIVerifyResult (VkResult Result, const ANSICHAR *VkFuntion, const ANSICHAR *Filename, uint32 Line) final override
 
virtual void Init () final override
 
virtual void PostInit () final override
 
virtual void Shutdown () final override
 
virtual const TCHARGetName () final override
 
void InitInstance ()
 
virtual void RHIEndFrame_RenderThread (FRHICommandListImmediate &RHICmdList) final override
 
virtual void RHIEndFrame (const FRHIEndFrameArgs &Args) final override
 
virtual FSamplerStateRHIRef RHICreateSamplerState (const FSamplerStateInitializerRHI &Initializer) final override
 
virtual FRasterizerStateRHIRef RHICreateRasterizerState (const FRasterizerStateInitializerRHI &Initializer) final override
 
virtual FDepthStencilStateRHIRef RHICreateDepthStencilState (const FDepthStencilStateInitializerRHI &Initializer) final override
 
virtual FBlendStateRHIRef RHICreateBlendState (const FBlendStateInitializerRHI &Initializer) final override
 
virtual FVertexDeclarationRHIRef RHICreateVertexDeclaration (const FVertexDeclarationElementList &Elements) final override
 
virtual FPixelShaderRHIRef RHICreatePixelShader (TArrayView< const uint8 > Code, const FSHAHash &Hash) final override
 
virtual FVertexShaderRHIRef RHICreateVertexShader (TArrayView< const uint8 > Code, const FSHAHash &Hash) final override
 
virtual FMeshShaderRHIRef RHICreateMeshShader (TArrayView< const uint8 > Code, const FSHAHash &Hash) final override
 
virtual FAmplificationShaderRHIRef RHICreateAmplificationShader (TArrayView< const uint8 > Code, const FSHAHash &Hash) final override
 
virtual FGeometryShaderRHIRef RHICreateGeometryShader (TArrayView< const uint8 > Code, const FSHAHash &Hash) final override
 
virtual FComputeShaderRHIRef RHICreateComputeShader (TArrayView< const uint8 > Code, const FSHAHash &Hash) final override
 
virtual FGPUFenceRHIRef RHICreateGPUFence (const FName &Name) final override
 
virtual void RHIWriteGPUFence_TopOfPipe (FRHICommandListBase &RHICmdList, FRHIGPUFence *FenceRHI) final override
 
virtual void RHICreateTransition (FRHITransition *Transition, const FRHITransitionCreateInfo &CreateInfo) final override
 
virtual void RHIReleaseTransition (FRHITransition *Transition) final override
 
virtual FStagingBufferRHIRef RHICreateStagingBuffer () final override
 
virtual FBoundShaderStateRHIRef RHICreateBoundShaderState (FRHIVertexDeclaration *VertexDeclaration, FRHIVertexShader *VertexShader, FRHIPixelShader *PixelShader, FRHIGeometryShader *GeometryShader) final override
 
virtual FGraphicsPipelineStateRHIRef RHICreateGraphicsPipelineState (const FGraphicsPipelineStateInitializer &Initializer) final override
 
virtual FComputePipelineStateRHIRef RHICreateComputePipelineState (const FComputePipelineStateInitializer &Initializer) final override
 
virtual FUniformBufferRHIRef RHICreateUniformBuffer (const void *Contents, const FRHIUniformBufferLayout *Layout, EUniformBufferUsage Usage, EUniformBufferValidation Validation) final override
 
virtual void RHIUpdateUniformBuffer (FRHICommandListBase &RHICmdList, FRHIUniformBuffer *UniformBufferRHI, const void *Contents) final override
 
virtual FRHIBufferInitializer RHICreateBufferInitializer (FRHICommandListBase &RHICmdList, const FRHIBufferCreateDesc &CreateDesc) final override
 
virtual void RHIReplaceResources (FRHICommandListBase &RHICmdList, TArray< FRHIResourceReplaceInfo > &&ReplaceInfos) final override
 
virtual voidLockBuffer_BottomOfPipe (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 Offset, uint32 Size, EResourceLockMode LockMode) final override
 
virtual void UnlockBuffer_BottomOfPipe (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer) final override
 
virtual voidRHILockBuffer (FRHICommandListBase &RHICmdList, FRHIBuffer *BufferRHI, uint32 Offset, uint32 Size, EResourceLockMode LockMode) final override
 
virtual void RHIUnlockBuffer (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer) final override
 
virtual FTextureReferenceRHIRef RHICreateTextureReference (FRHICommandListBase &RHICmdList, FRHITexture *InReferencedTexture) final override
 
virtual void RHIUpdateTextureReference (FRHICommandListBase &RHICmdList, FRHITextureReference *TextureRef, FRHITexture *NewTexture) final override
 
virtual FRHICalcTextureSizeResult RHICalcTexturePlatformSize (FRHITextureDesc const &Desc, uint32 FirstMipIndex) final override
 
virtual void RHIGetTextureMemoryStats (FTextureMemoryStats &OutStats) final override
 
virtual bool RHIGetTextureMemoryVisualizeData (FColor *TextureData, int32 SizeX, int32 SizeY, int32 Pitch, int32 PixelSize) final override
 
FCreateTextureResult BeginCreateTextureInternal (const FRHITextureCreateDesc &CreateDesc, const FRHITransientHeapAllocation *InTransientHeapAllocation)
 
FVulkanTextureFinalizeCreateTextureInternal (FRHICommandListBase &RHICmdList, FCreateTextureResult CreateResult)
 
FVulkanTextureCreateTextureInternal (FRHICommandListBase &RHICmdList, const FRHITextureCreateDesc &CreateDesc)
 
FVulkanTextureCreateTextureInternal (const FRHITextureCreateDesc &CreateDesc, const FRHITransientHeapAllocation &InTransientHeapAllocation)
 
virtual FRHITextureInitializer RHICreateTextureInitializer (FRHICommandListBase &RHICmdList, const FRHITextureCreateDesc &CreateDesc)
 
virtual FTextureRHIRef RHIAsyncCreateTexture2D (uint32 SizeX, uint32 SizeY, uint8 Format, uint32 NumMips, ETextureCreateFlags Flags, ERHIAccess InResourceState, void **InitialMipData, uint32 NumInitialMips, const TCHAR *DebugName, FGraphEventRef &OutCompletionEvent) final override
 
virtual uint32 RHIComputeMemorySize (FRHITexture *TextureRHI) final override
 
virtual FTextureRHIRef RHIAsyncReallocateTexture2D (FRHITexture *Texture2D, int32 NewMipCount, int32 NewSizeX, int32 NewSizeY, FThreadSafeCounter *RequestStatus) final override
 
virtual FRHILockTextureResult RHILockTexture (FRHICommandListImmediate &RHICmdList, const FRHILockTextureArgs &Arguments) final override
 
virtual void RHIUnlockTexture (FRHICommandListImmediate &RHICmdList, const FRHILockTextureArgs &Arguments) final override
 
virtual void RHIUpdateTexture2D (FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion2D &UpdateRegion, uint32 SourcePitch, const uint8 *SourceData) final override
 
virtual void RHIUpdateTexture3D (FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion3D &UpdateRegion, uint32 SourceRowPitch, uint32 SourceDepthPitch, const uint8 *SourceData) final override
 
virtual void RHIBindDebugLabelName (FRHICommandListBase &RHICmdList, FRHITexture *Texture, const TCHAR *Name) final override
 
virtual void RHIReadSurfaceData (FRHITexture *Texture, FIntRect Rect, TArray< FColor > &OutData, FReadSurfaceDataFlags InFlags) final override
 
virtual void RHIReadSurfaceData (FRHITexture *Texture, FIntRect Rect, TArray< FLinearColor > &OutData, FReadSurfaceDataFlags InFlags) final override
 
virtual void RHIMapStagingSurface (FRHITexture *Texture, FRHIGPUFence *Fence, void *&OutData, int32 &OutWidth, int32 &OutHeight, uint32 GPUIndex=0) final override
 
virtual void RHIUnmapStagingSurface (FRHITexture *Texture, uint32 GPUIndex=0) final override
 
virtual void RHIReadSurfaceFloatData (FRHITexture *Texture, FIntRect Rect, TArray< FFloat16Color > &OutData, ECubeFace CubeFace, int32 ArrayIndex, int32 MipIndex) final override
 
virtual void RHIRead3DSurfaceFloatData (FRHITexture *Texture, FIntRect Rect, FIntPoint ZMinMax, TArray< FFloat16Color > &OutData) final override
 
virtual FRenderQueryRHIRef RHICreateRenderQuery (ERenderQueryType QueryType) final override
 
virtual void RHIEndRenderQuery_TopOfPipe (FRHICommandListBase &RHICmdList, FRHIRenderQuery *RenderQuery) final override
 
virtual void RHIBeginRenderQueryBatch_TopOfPipe (FRHICommandListBase &RHICmdList, ERenderQueryType QueryType) final override
 
virtual void RHIEndRenderQueryBatch_TopOfPipe (FRHICommandListBase &RHICmdList, ERenderQueryType QueryType) final override
 
virtual bool RHIGetRenderQueryResult (FRHIRenderQuery *RenderQuery, uint64 &OutResult, bool bWait, uint32 GPUIndex=INDEX_NONE) final override
 
virtual FTextureRHIRef RHIGetViewportBackBuffer (FRHIViewport *Viewport) final override
 
virtual void RHIAliasTextureResources (FTextureRHIRef &DestTexture, FTextureRHIRef &SrcTexture) final override
 
virtual FTextureRHIRef RHICreateAliasedTexture (FTextureRHIRef &SourceTexture) final override
 
virtual void RHIAdvanceFrameForGetViewportBackBuffer (FRHIViewport *Viewport, bool bPresent) final override
 
virtual void RHIFlushResources () final override
 
virtual FViewportRHIRef RHICreateViewport (void *WindowHandle, uint32 SizeX, uint32 SizeY, bool bIsFullscreen, EPixelFormat PreferredPixelFormat) final override
 
virtual void RHIResizeViewport (FRHIViewport *Viewport, uint32 SizeX, uint32 SizeY, bool bIsFullscreen) final override
 
virtual void RHIResizeViewport (FRHIViewport *Viewport, uint32 SizeX, uint32 SizeY, bool bIsFullscreen, EPixelFormat PreferredPixelFormat) final override
 
virtual void RHITick (float DeltaTime) final override
 
virtual void RHIBlockUntilGPUIdle () final override
 
virtual void RHISuspendRendering () final override
 
virtual void RHIResumeRendering () final override
 
virtual bool RHIIsRenderingSuspended () final override
 
virtual bool RHIGetAvailableResolutions (FScreenResolutionArray &Resolutions, bool bIgnoreRefreshRate) final override
 
virtual void RHIGetSupportedResolution (uint32 &Width, uint32 &Height) final override
 
virtual voidRHIGetNativeDevice () final override
 
virtual voidRHIGetNativePhysicalDevice () final override
 
virtual voidRHIGetNativeGraphicsQueue () final override
 
virtual voidRHIGetNativeComputeQueue () final override
 
virtual voidRHIGetNativeInstance () final override
 
virtual class IRHICommandContextRHIGetDefaultContext () final override
 
virtual IRHIComputeContextRHIGetCommandContext (ERHIPipeline Pipeline, FRHIGPUMask GPUMask) final override
 
virtual IRHIUploadContextRHIGetUploadContext () final override
 
virtual void RHIFinalizeContext (FRHIFinalizeContextArgs &&Args, TRHIPipelineArray< IRHIPlatformCommandList * > &Output) final override
 
virtual void RHISubmitCommandLists (FRHISubmitCommandListsArgs &&Args) final override
 
virtual uint64 RHIGetMinimumAlignmentForBufferBackedSRV (EPixelFormat Format) final override
 
virtual IRHIComputeContextRHIGetParallelCommandContext (FRHIParallelRenderPassInfo const &ParallelRenderPass, FRHIGPUMask GPUMask) final override
 
virtual IRHIPlatformCommandListRHIFinalizeParallelContext (IRHIComputeContext *Context) final override
 
virtual IRHITransientResourceAllocatorRHICreateTransientResourceAllocator () final override
 
virtual uint64 RHIComputePrecachePSOHash (const FGraphicsPipelineStateInitializer &Initializer) final override
 
virtual uint64 RHIComputeStatePrecachePSOHash (const FGraphicsPipelineStateInitializer &Initializer) final override
 
virtual bool RHIMatchPrecachePSOInitializers (const FGraphicsPipelineStateInitializer &LHS, const FGraphicsPipelineStateInitializer &RHS) final override
 
virtual FTextureRHIRef AsyncReallocateTexture2D_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture2D, int32 NewMipCount, int32 NewSizeX, int32 NewSizeY, FThreadSafeCounter *RequestStatus) override final
 
virtual FUpdateTexture3DData RHIBeginUpdateTexture3D (FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion3D &UpdateRegion) override final
 
virtual void RHIEndUpdateTexture3D (FRHICommandListBase &RHICmdList, FUpdateTexture3DData &UpdateData) override final
 
virtual FShaderResourceViewRHIRef RHICreateShaderResourceView (class FRHICommandListBase &RHICmdList, FRHIViewableResource *Resource, FRHIViewDesc const &ViewDesc) final override
 
virtual FUnorderedAccessViewRHIRef RHICreateUnorderedAccessView (class FRHICommandListBase &RHICmdList, FRHIViewableResource *Resource, FRHIViewDesc const &ViewDesc) final override
 
virtual FRayTracingAccelerationStructureSize RHICalcRayTracingSceneSize (const FRayTracingSceneInitializer &Initializer) final override
 
virtual FRayTracingAccelerationStructureSize RHICalcRayTracingGeometrySize (const FRayTracingGeometryInitializer &Initializer) final override
 
virtual FRayTracingGeometryRHIRef RHICreateRayTracingGeometry (FRHICommandListBase &RHICmdList, const FRayTracingGeometryInitializer &Initializer) final override
 
virtual FRayTracingSceneRHIRef RHICreateRayTracingScene (FRayTracingSceneInitializer Initializer) final override
 
virtual FRayTracingShaderRHIRef RHICreateRayTracingShader (TArrayView< const uint8 > Code, const FSHAHash &Hash, EShaderFrequency ShaderFrequency) final override
 
virtual FRayTracingPipelineStateRHIRef RHICreateRayTracingPipelineState (const FRayTracingPipelineStateInitializer &Initializer) final override
 
virtual FShaderBindingTableRHIRef RHICreateShaderBindingTable (FRHICommandListBase &RHICmdList, const FRayTracingShaderBindingTableInitializer &Initializer) final override
 
const TArray< const ANSICHAR * > & GetInstanceExtensions () const
 
const TArray< const ANSICHAR * > & GetInstanceLayers () const
 
VkInstance GetInstance () const
 
FVulkanDeviceGetDevice () const
 
bool SupportsDebugUtilsExt () const
 
const FOptionalVulkanInstanceExtensionsGetOptionalExtensions () const
 
void VulkanSetImageLayout (VkCommandBuffer CmdBuffer, VkImage Image, VkImageLayout OldLayout, VkImageLayout NewLayout, const VkImageSubresourceRange &SubresourceRange)
 
virtual voidRHILockStagingBuffer (FRHIStagingBuffer *StagingBuffer, FRHIGPUFence *Fence, uint32 Offset, uint32 SizeRHI) final override
 
virtual void RHIUnlockStagingBuffer (FRHIStagingBuffer *StagingBuffer) final override
 
TArray< FVulkanViewport * > & GetViewports ()
 
uint32 GetApiVersion () const
 
virtual void RHIRunOnQueue (EVulkanRHIRunOnQueueType QueueType, TFunction< void(VkQueue)> &&CodeToRun, bool bWaitForSubmission) final override
 
void DumpCrashMarkers ()
 
void ProcessInterruptQueueUntil (FVulkanSyncPointRef SyncPoint)
 
void ProcessInterruptQueueUntil (FGraphEvent *GraphEvent)
 
void EnqueueEndOfPipeTask (TUniqueFunction< void()> TaskFunc, TUniqueFunction< void(FVulkanPayload &)> ModifyPayloadCallback={})
 
void CompletePayload (FVulkanPayload *Payload)
 
bool IsInInterruptThread () const
 
void ProcessInterruptQueueOnGPUCrash ()
 
void TerminateOnGPUCrash (const TCHAR *Message)
 
bool HasInterruptThread () const
 
bool HasSubmissionThread () const
 
void KickSubmissionThread (bool bForce=false)
 
- Public Member Functions inherited from IVulkanDynamicRHI
virtual ERHIInterfaceType GetInterfaceType () const override
 
- Public Member Functions inherited from FDynamicRHI
virtual RHI_API ~FDynamicRHI ()
 
virtual FDynamicRHIGetNonValidationRHI ()
 
void InitPixelFormatInfo (const TArray< uint32 > &PixelFormatBlockBytesIn)
 
virtual void FlushPendingLogs ()
 
virtual FWorkGraphShaderRHIRef RHICreateWorkGraphShader (TArrayView< const uint8 > Code, const FSHAHash &Hash, EShaderFrequency ShaderFrequency)
 
virtual FRHIShaderLibraryRef RHICreateShaderLibrary (EShaderPlatform Platform, FString const &FilePath, FString const &Name)
 
virtual RHI_API voidLockStagingBuffer_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHIStagingBuffer *StagingBuffer, FRHIGPUFence *Fence, uint32 Offset, uint32 SizeRHI)
 
virtual RHI_API void UnlockStagingBuffer_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHIStagingBuffer *StagingBuffer)
 
virtual FWorkGraphPipelineStateRHIRef RHICreateWorkGraphPipelineState (const FWorkGraphPipelineStateInitializer &Initializer)
 
virtual RHI_API voidRHILockBufferMGPU (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 GPUIndex, uint32 Offset, uint32 Size, EResourceLockMode LockMode)
 
virtual RHI_API void RHIUnlockBufferMGPU (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 GPUIndex)
 
virtual FRHIResourceCollectionRef RHICreateResourceCollection (FRHICommandListBase &RHICmdList, TConstArrayView< FRHIResourceCollectionMember > InMembers)
 
virtual void RHIUpdateResourceCollection (FRHICommandListBase &RHICmdList, FRHIResourceCollection *InResourceCollection, uint32 InStartIndex, TConstArrayView< FRHIResourceCollectionMember > InMemberUpdates)
 
virtual void RHIUpdateFromBufferTexture2D (FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion2D &UpdateRegion, uint32 SourcePitch, FRHIBuffer *Buffer, uint32 BufferOffset)
 
virtual RHI_API void RHIBindDebugLabelName (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, const TCHAR *Name)
 
virtual RHI_API void RHIBindDebugLabelName (FRHICommandListBase &RHICmdList, FRHIUnorderedAccessView *UnorderedAccessViewRHI, const TCHAR *Name)
 
virtual RHI_API void RHIReadSurfaceFloatData (FRHITexture *Texture, FIntRect Rect, TArray< FFloat16Color > &OutData, FReadSurfaceDataFlags InFlags)
 
virtual RHI_API void RHIRead3DSurfaceFloatData (FRHITexture *Texture, FIntRect Rect, FIntPoint ZMinMax, TArray< FFloat16Color > &OutData, FReadSurfaceDataFlags InFlags)
 
virtual RHI_API void RHIBeginRenderQuery_TopOfPipe (FRHICommandListBase &RHICmdList, FRHIRenderQuery *RenderQuery)
 
virtual uint32 RHIGetViewportNextPresentGPUIndex (FRHIViewport *Viewport)
 
virtual FUnorderedAccessViewRHIRef RHIGetViewportBackBufferUAV (FRHIViewport *ViewportRHI)
 
virtual uint32 RHIGetHTilePlatformConfig (uint32 DepthWidth, uint32 DepthHeight) const
 
virtual uint32 RHIGetHTilePlatformConfig (const FRHITextureDesc &DepthDesc) const
 
virtual void RHIGetDisplaysInformation (FDisplayInformationArray &OutDisplayInformation)
 
virtual void RHIAcquireThreadOwnership ()
 
virtual void RHIReleaseThreadOwnership ()
 
virtual EPixelFormat RHIPreferredPixelFormatHint (EPixelFormat PreferredPixelFormat)
 
virtual RHI_API void RHICheckViewportHDRStatus (FRHIViewport *Viewport)
 
virtual void RHIHandleDisplayChange ()
 
virtual void RHIBeginSuspendRendering ()
 
virtual RHI_API void RHIVirtualTextureSetFirstMipInMemory (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 FirstMip)
 
virtual RHI_API void RHIVirtualTextureSetFirstMipVisible (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 FirstMip)
 
virtual voidRHIGetNativeCommandBuffer ()
 
void RHICloseTranslateChain (FRHIFinalizeContextArgs &&Args, TRHIPipelineArray< IRHIPlatformCommandList * > &Output, bool bShouldFinalize)
 
virtual void RHIProcessDeleteQueue ()
 
virtual RHI_API void RHIEndMultiUpdateTexture3D (FRHICommandListBase &RHICmdList, TArray< FUpdateTexture3DData > &UpdateDataArray)
 
virtual RHI_API FRHIShaderLibraryRef RHICreateShaderLibrary_RenderThread (class FRHICommandListImmediate &RHICmdList, EShaderPlatform Platform, FString FilePath, FString Name)
 
virtual RHI_API void RHIMapStagingSurface_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 GPUIndex, FRHIGPUFence *Fence, void *&OutData, int32 &OutWidth, int32 &OutHeight)
 
virtual RHI_API void RHIUnmapStagingSurface_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 GPUIndex)
 
virtual RHI_API void RHIReadSurfaceFloatData_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, FIntRect Rect, TArray< FFloat16Color > &OutData, ECubeFace CubeFace, int32 ArrayIndex, int32 MipIndex)
 
virtual RHI_API void RHIReadSurfaceFloatData_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, FIntRect Rect, TArray< FFloat16Color > &OutData, FReadSurfaceDataFlags Flags)
 
virtual FRHIFlipDetails RHIWaitForFlip (double TimeoutInSeconds)
 
virtual void RHISignalFlipEvent ()
 
virtual uint16 RHIGetPlatformTextureMaxSampleCount ()
 
virtual FRayTracingClusterOperationSize RHICalcRayTracingClusterOperationSize (const FRayTracingClusterOperationInitializer &Initializer)
 
virtual FRayTracingAccelerationStructureOfflineMetadata RHIGetRayTracingGeometryOfflineMetadata (const FRayTracingGeometryOfflineDataHeader &OfflineDataHeader)
 
virtual void RHISerializeAccelerationStructure (FRHICommandListImmediate &RHICmdList, FRHIRayTracingScene *Scene, const TCHAR *Path)
 
virtual FShaderBundleRHIRef RHICreateShaderBundle (const FShaderBundleCreateInfo &CreateInfo)
 

Static Public Member Functions

static FVulkanDynamicRHIGet ()
 
static uint32 GetPrecachePSOHashVersion ()
 
static void SavePipelineCache ()
 
- Static Public Member Functions inherited from IVulkanDynamicRHI
static VULKANRHI_API void AddEnabledInstanceExtensionsAndLayers (TArrayView< const ANSICHAR *const > InInstanceExtensions, TArrayView< const ANSICHAR *const > InInstanceLayers)
 
static VULKANRHI_API void AddEnabledDeviceExtensionsAndLayers (TArrayView< const ANSICHAR *const > InDeviceExtensions, TArrayView< const ANSICHAR *const > InDeviceLayers)
 
- Static Public Member Functions inherited from FDynamicRHI
static RHI_API void EnableIdealGPUCaptureOptions (bool bEnable)
 

Public Attributes

uint32 TotalPresentCount = 0
 
TOptional< uint64ExternalGPUTime
 

Static Public Attributes

static TSharedPtr< IHeadMountedDisplayVulkanExtensions, ESPMode::ThreadSafeHMDVulkanExtensions
 

Protected Member Functions

void InitializeSubmissionPipe ()
 
void ShutdownSubmissionPipe ()
 
bool ProcessSubmissionQueue ()
 
bool ProcessInterruptQueue ()
 
bool WaitAndProcessInterruptQueue ()
 
void KickInterruptThread ()
 
void CreateInstance ()
 
void SelectDevice ()
 
TArray< const ANSICHAR * > SetupInstanceLayers (FVulkanInstanceExtensionArray &UEExtensions)
 
void InternalUpdateTexture2D (FRHICommandListBase &RHICmdList, FRHITexture *TextureRHI, uint32 MipIndex, const struct FUpdateTextureRegion2D &UpdateRegion, uint32 SourcePitch, const uint8 *SourceData)
 
void InternalUpdateTexture3D (FRHICommandListBase &RHICmdList, FRHITexture *TextureRHI, uint32 MipIndex, const struct FUpdateTextureRegion3D &UpdateRegion, uint32 SourceRowPitch, uint32 SourceDepthPitch, const uint8 *SourceData)
 
void UpdateUniformBuffer (FRHICommandListBase &RHICmdList, FVulkanUniformBuffer *UniformBuffer, const void *Contents)
 

Static Protected Member Functions

static void RebuildPipelineCache ()
 
static void SetupValidationRequests ()
 

Protected Attributes

FCriticalSection SubmissionCS
 
FVulkanThreadSubmissionThread = nullptr
 
FCriticalSection InterruptCS
 
FVulkanThreadInterruptThread = nullptr
 
FVulkanSemaphoreCPUTimelineSemaphore = nullptr
 
std::atomic< uint64CPUTimelineSemaphoreValue = 1
 
TQueue< FVulkanPlatformCommandList *, EQueueMode::MpscPendingPayloadsForSubmission
 
TMap< VkSemaphore, FBinarySemaphoreSignalInfoSignaledSemaphores
 
FGraphEventRef EopTask
 
uint32 InterruptThreadID = 0
 
uint32 ApiVersion = 0
 
VkInstance Instance
 
TArray< const ANSICHAR * > InstanceExtensions
 
TArray< const ANSICHAR * > InstanceLayers
 
FVulkanDeviceDevice
 
TArray< FVulkanViewport * > Viewports
 
IConsoleObjectSavePipelineCacheCmd = nullptr
 
IConsoleObjectRebuildPipelineCacheCmd = nullptr
 
bool bIsStandaloneStereoDevice = false
 
EActiveDebugLayerExtension ActiveDebugLayerExtension = EActiveDebugLayerExtension::None
 
FCriticalSection LockBufferCS
 
FOptionalVulkanInstanceExtensions OptionalInstanceExtensions
 
- Protected Attributes inherited from FDynamicRHI
TArray< uint32PixelFormatBlockBytes
 

Friends

class FVulkanCommandListContext
 
class FVulkanViewport
 

Detailed Description

The interface which is implemented by the dynamically bound RHI.

Member Enumeration Documentation

◆ EActiveDebugLayerExtension

Enumerator
None 
GfxReconstructLayer 
VkTraceLayer 
DebugUtilsExtension 

Constructor & Destructor Documentation

◆ FVulkanDynamicRHI()

FVulkanDynamicRHI::FVulkanDynamicRHI ( )

Initialization constructor.

◆ ~FVulkanDynamicRHI()

FVulkanDynamicRHI::~FVulkanDynamicRHI ( )
default

Destructor

Member Function Documentation

◆ AsyncReallocateTexture2D_RenderThread()

FTextureRHIRef FVulkanDynamicRHI::AsyncReallocateTexture2D_RenderThread ( class FRHICommandListImmediate RHICmdList,
FRHITexture Texture2D,
int32  NewMipCount,
int32  NewSizeX,
int32  NewSizeY,
FThreadSafeCounter RequestStatus 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ BeginCreateTextureInternal()

FVulkanDynamicRHI::FCreateTextureResult FVulkanDynamicRHI::BeginCreateTextureInternal ( const FRHITextureCreateDesc CreateDesc,
const FRHITransientHeapAllocation InTransientHeapAllocation 
)

◆ CompletePayload()

void FVulkanDynamicRHI::CompletePayload ( FVulkanPayload Payload)

◆ CreateInstance()

void FVulkanDynamicRHI::CreateInstance ( )
protected

◆ CreateTextureInternal() [1/2]

FVulkanTexture * FVulkanDynamicRHI::CreateTextureInternal ( const FRHITextureCreateDesc CreateDesc,
const FRHITransientHeapAllocation InTransientHeapAllocation 
)

◆ CreateTextureInternal() [2/2]

FVulkanTexture * FVulkanDynamicRHI::CreateTextureInternal ( FRHICommandListBase RHICmdList,
const FRHITextureCreateDesc CreateDesc 
)

◆ DumpCrashMarkers()

void FVulkanDynamicRHI::DumpCrashMarkers ( )

◆ EnqueueEndOfPipeTask()

void FVulkanDynamicRHI::EnqueueEndOfPipeTask ( TUniqueFunction< void()>  TaskFunc,
TUniqueFunction< void(FVulkanPayload &)>  ModifyPayloadCallback = {} 
)

◆ FinalizeCreateTextureInternal()

FVulkanTexture * FVulkanDynamicRHI::FinalizeCreateTextureInternal ( FRHICommandListBase RHICmdList,
FCreateTextureResult  CreateResult 
)

◆ Get()

static FVulkanDynamicRHI & FVulkanDynamicRHI::Get ( )
inlinestatic

◆ GetApiVersion()

uint32 FVulkanDynamicRHI::GetApiVersion ( ) const
inline

◆ GetDevice()

FVulkanDevice * FVulkanDynamicRHI::GetDevice ( ) const
inline

◆ GetInstance()

VkInstance FVulkanDynamicRHI::GetInstance ( ) const
inline

◆ GetInstanceExtensions()

const TArray< const ANSICHAR * > & FVulkanDynamicRHI::GetInstanceExtensions ( ) const
inline

◆ GetInstanceLayers()

const TArray< const ANSICHAR * > & FVulkanDynamicRHI::GetInstanceLayers ( ) const
inline

◆ GetName()

virtual const TCHAR * FVulkanDynamicRHI::GetName ( )
inlinefinaloverridevirtual

Implements FDynamicRHI.

◆ GetOptionalExtensions()

const FOptionalVulkanInstanceExtensions & FVulkanDynamicRHI::GetOptionalExtensions ( ) const
inline

◆ GetPrecachePSOHashVersion()

uint32 FVulkanDynamicRHI::GetPrecachePSOHashVersion ( )
static

◆ GetViewports()

TArray< FVulkanViewport * > & FVulkanDynamicRHI::GetViewports ( )
inline

◆ HasInterruptThread()

bool FVulkanDynamicRHI::HasInterruptThread ( ) const
inline

◆ HasSubmissionThread()

bool FVulkanDynamicRHI::HasSubmissionThread ( ) const
inline

◆ Init()

void FVulkanDynamicRHI::Init ( )
finaloverridevirtual

Initializes the RHI; separate from IDynamicRHIModule::CreateRHI so that GDynamicRHI is set when it is called.

Implements FDynamicRHI.

◆ InitializeSubmissionPipe()

void FVulkanDynamicRHI::InitializeSubmissionPipe ( )
protected

◆ InitInstance()

void FVulkanDynamicRHI::InitInstance ( )

◆ InternalUpdateTexture2D()

void FVulkanDynamicRHI::InternalUpdateTexture2D ( FRHICommandListBase RHICmdList,
FRHITexture TextureRHI,
uint32  MipIndex,
const struct FUpdateTextureRegion2D UpdateRegion,
uint32  SourcePitch,
const uint8 SourceData 
)
protected

◆ InternalUpdateTexture3D()

void FVulkanDynamicRHI::InternalUpdateTexture3D ( FRHICommandListBase RHICmdList,
FRHITexture TextureRHI,
uint32  MipIndex,
const struct FUpdateTextureRegion3D UpdateRegion,
uint32  SourceRowPitch,
uint32  SourceDepthPitch,
const uint8 SourceData 
)
protected

◆ IsInInterruptThread()

bool FVulkanDynamicRHI::IsInInterruptThread ( ) const

◆ KickInterruptThread()

void FVulkanDynamicRHI::KickInterruptThread ( )
protected

◆ KickSubmissionThread()

void FVulkanDynamicRHI::KickSubmissionThread ( bool  bForce = false)

◆ LockBuffer_BottomOfPipe()

void * FVulkanDynamicRHI::LockBuffer_BottomOfPipe ( FRHICommandListBase RHICmdList,
FRHIBuffer Buffer,
uint32  Offset,
uint32  Size,
EResourceLockMode  LockMode 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ PostInit()

void FVulkanDynamicRHI::PostInit ( )
finaloverridevirtual

Called after the RHI is initialized; before the render thread is started.

Reimplemented from FDynamicRHI.

◆ ProcessInterruptQueue()

bool FVulkanDynamicRHI::ProcessInterruptQueue ( )
protected

◆ ProcessInterruptQueueOnGPUCrash()

void FVulkanDynamicRHI::ProcessInterruptQueueOnGPUCrash ( )

◆ ProcessInterruptQueueUntil() [1/2]

void FVulkanDynamicRHI::ProcessInterruptQueueUntil ( FGraphEvent GraphEvent)

◆ ProcessInterruptQueueUntil() [2/2]

void FVulkanDynamicRHI::ProcessInterruptQueueUntil ( FVulkanSyncPointRef  SyncPoint)

◆ ProcessSubmissionQueue()

bool FVulkanDynamicRHI::ProcessSubmissionQueue ( )
protected

◆ RebuildPipelineCache()

void FVulkanDynamicRHI::RebuildPipelineCache ( )
staticprotected

◆ RHIAdvanceFrameForGetViewportBackBuffer()

void FVulkanDynamicRHI::RHIAdvanceFrameForGetViewportBackBuffer ( FRHIViewport Viewport,
bool  bPresent 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIAliasTextureResources()

void FVulkanDynamicRHI::RHIAliasTextureResources ( FTextureRHIRef DestTexture,
FTextureRHIRef SrcTexture 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIAsyncCreateTexture2D()

FTextureRHIRef FVulkanDynamicRHI::RHIAsyncCreateTexture2D ( uint32  SizeX,
uint32  SizeY,
uint8  Format,
uint32  NumMips,
ETextureCreateFlags  Flags,
ERHIAccess  InResourceState,
void **  InitialMipData,
uint32  NumInitialMips,
const TCHAR DebugName,
FGraphEventRef OutCompletionEvent 
)
finaloverridevirtual

Thread-safe function that can be used to create a texture outside of the rendering thread. This function can ONLY be called if GRHISupportsAsyncTextureCreation is true. Cannot create rendertargets with this method.

Parameters
SizeX- width of the texture to create
SizeY- height of the texture to create
Format- EPixelFormat texture format
NumMips- number of mips to generate or 0 for full mip pyramid
Flags- ETextureCreateFlags creation flags
InitialMipData- pointers to mip data with which to create the texture
NumInitialMips- how many mips are provided in InitialMipData
OutCompletionEvent- An event signaled on operation completion. Can return null. Operation can still be pending after function returns (e.g. initial data upload in-flight)
Returns
a reference to a 2D texture resource

Implements FDynamicRHI.

◆ RHIAsyncReallocateTexture2D()

FTextureRHIRef FVulkanDynamicRHI::RHIAsyncReallocateTexture2D ( FRHITexture Texture2D,
int32  NewMipCount,
int32  NewSizeX,
int32  NewSizeY,
FThreadSafeCounter RequestStatus 
)
finaloverridevirtual

Starts an asynchronous texture reallocation. It may complete immediately if the reallocation could be performed without any reshuffling of texture memory, or if there isn't enough memory. The specified status counter will be decremented by 1 when the reallocation is complete (success or failure).

Returns a new reference to the texture, which will represent the new mip count when the reallocation is complete. RHIFinalizeAsyncReallocateTexture2D() must be called to complete the reallocation.

Parameters
Texture2D- Texture to reallocate
NewMipCount- New number of mip-levels
NewSizeX- New width, in pixels
NewSizeY- New height, in pixels
RequestStatus- Will be decremented by 1 when the reallocation is complete (success or failure).
Returns
- New reference to the texture, or an invalid reference upon failure

Implements FDynamicRHI.

◆ RHIBeginRenderQueryBatch_TopOfPipe()

void FVulkanDynamicRHI::RHIBeginRenderQueryBatch_TopOfPipe ( FRHICommandListBase RHICmdList,
ERenderQueryType  QueryType 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIBeginUpdateTexture3D()

FUpdateTexture3DData FVulkanDynamicRHI::RHIBeginUpdateTexture3D ( FRHICommandListBase RHICmdList,
FRHITexture Texture,
uint32  MipIndex,
const struct FUpdateTextureRegion3D UpdateRegion 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIBindDebugLabelName()

void FVulkanDynamicRHI::RHIBindDebugLabelName ( FRHICommandListBase RHICmdList,
FRHITexture Texture,
const TCHAR Name 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIBlockUntilGPUIdle()

void FVulkanDynamicRHI::RHIBlockUntilGPUIdle ( )
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICalcRayTracingGeometrySize()

FRayTracingAccelerationStructureSize FVulkanDynamicRHI::RHICalcRayTracingGeometrySize ( const FRayTracingGeometryInitializer Initializer)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICalcRayTracingSceneSize()

FRayTracingAccelerationStructureSize FVulkanDynamicRHI::RHICalcRayTracingSceneSize ( const FRayTracingSceneInitializer Initializer)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICalcTexturePlatformSize()

FDynamicRHI::FRHICalcTextureSizeResult FVulkanDynamicRHI::RHICalcTexturePlatformSize ( FRHITextureDesc const &  Desc,
uint32  FirstMipIndex 
)
finaloverridevirtual

Computes the total GPU memory a texture resource with the specified parameters will occupy on the current RHI platform. Also returns the required alignment for the resource.

Parameters
Desc- The texture descriptor (width, height, format etc)
FirstMipIndex- The index of the most detailed mip to consider in the memory size calculation.
Returns
- The computed size and alignment of the platform texture resource.

Implements FDynamicRHI.

◆ RHIComputeMemorySize()

uint32 FVulkanDynamicRHI::RHIComputeMemorySize ( FRHITexture TextureRHI)
finaloverridevirtual

Computes the size in memory required by a given texture.

Parameters
TextureRHI- Texture we want to know the size of, 0 is safely ignored
Returns
- Size in Bytes

Implements FDynamicRHI.

◆ RHIComputePrecachePSOHash()

uint64 FVulkanDynamicRHI::RHIComputePrecachePSOHash ( const FGraphicsPipelineStateInitializer Initializer)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIComputeStatePrecachePSOHash()

uint64 FVulkanDynamicRHI::RHIComputeStatePrecachePSOHash ( const FGraphicsPipelineStateInitializer Initializer)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICreateAliasedTexture()

FTextureRHIRef FVulkanDynamicRHI::RHICreateAliasedTexture ( FTextureRHIRef SourceTexture)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICreateAmplificationShader()

FAmplificationShaderRHIRef FVulkanDynamicRHI::RHICreateAmplificationShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICreateBlendState()

FBlendStateRHIRef FVulkanDynamicRHI::RHICreateBlendState ( const FBlendStateInitializerRHI Initializer)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateBoundShaderState()

FBoundShaderStateRHIRef FVulkanDynamicRHI::RHICreateBoundShaderState ( FRHIVertexDeclaration VertexDeclaration,
FRHIVertexShader VertexShader,
FRHIPixelShader PixelShader,
FRHIGeometryShader GeometryShader 
)
finaloverridevirtual

Creates a bound shader state instance which encapsulates a decl, vertex shader and pixel shader CAUTION: Even though this is marked as threadsafe, it is only valid to call from the render thread or the RHI thread. It need not be threadsafe unless the RHI support parallel translation. CAUTION: Platforms that support RHIThread but don't actually have a threadsafe implementation must flush internally with FScopedRHIThreadStaller StallRHIThread(FRHICommandListExecutor::GetImmediateCommandList()); when the call is from the render thread

Parameters
VertexDeclaration- existing vertex decl
VertexShader- existing vertex shader
GeometryShader- existing geometry shader
PixelShader- existing pixel shader

Implements FDynamicRHI.

◆ RHICreateBufferInitializer()

FRHIBufferInitializer FVulkanDynamicRHI::RHICreateBufferInitializer ( FRHICommandListBase RHICmdList,
const FRHIBufferCreateDesc CreateDesc 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateComputePipelineState()

FComputePipelineStateRHIRef FVulkanDynamicRHI::RHICreateComputePipelineState ( const FComputePipelineStateInitializer Initializer)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateComputeShader()

FComputeShaderRHIRef FVulkanDynamicRHI::RHICreateComputeShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateDepthStencilState()

FDepthStencilStateRHIRef FVulkanDynamicRHI::RHICreateDepthStencilState ( const FDepthStencilStateInitializerRHI Initializer)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateGeometryShader()

FGeometryShaderRHIRef FVulkanDynamicRHI::RHICreateGeometryShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateGPUFence()

FGPUFenceRHIRef FVulkanDynamicRHI::RHICreateGPUFence ( const FName Name)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateGraphicsPipelineState()

FGraphicsPipelineStateRHIRef FVulkanDynamicRHI::RHICreateGraphicsPipelineState ( const FGraphicsPipelineStateInitializer Initializer)
finaloverridevirtual

Creates a graphics pipeline state object (PSO) that represents a complete gpu pipeline for rendering. This function should be considered expensive to call at runtime and may cause hitches as pipelines are compiled.

Parameters
Initializer- Descriptor object defining all the information needed to create the PSO, as well as behavior hints to the RHI.
Returns
FGraphicsPipelineStateRHIRef that can be bound for rendering; nullptr if the compilation fails. CAUTION: On certain RHI implementations (eg, ones that do not support runtime compilation) a compilation failure is a Fatal error and this function will not return. CAUTION: Even though this is marked as threadsafe, it is only valid to call from the render thread or the RHI thread. It need not be threadsafe unless the RHI support parallel translation. CAUTION: Platforms that support RHIThread but don't actually have a threadsafe implementation must flush internally with FScopedRHIThreadStaller StallRHIThread(FRHICommandListExecutor::GetImmediateCommandList()); when the call is from the render thread

Implements FDynamicRHI.

◆ RHICreateMeshShader()

FMeshShaderRHIRef FVulkanDynamicRHI::RHICreateMeshShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICreatePixelShader()

FPixelShaderRHIRef FVulkanDynamicRHI::RHICreatePixelShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateRasterizerState()

FRasterizerStateRHIRef FVulkanDynamicRHI::RHICreateRasterizerState ( const FRasterizerStateInitializerRHI Initializer)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateRayTracingGeometry()

FRayTracingGeometryRHIRef FVulkanDynamicRHI::RHICreateRayTracingGeometry ( FRHICommandListBase RHICmdList,
const FRayTracingGeometryInitializer Initializer 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICreateRayTracingPipelineState()

FRayTracingPipelineStateRHIRef FVulkanDynamicRHI::RHICreateRayTracingPipelineState ( const FRayTracingPipelineStateInitializer Initializer)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICreateRayTracingScene()

FRayTracingSceneRHIRef FVulkanDynamicRHI::RHICreateRayTracingScene ( FRayTracingSceneInitializer  Initializer)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICreateRayTracingShader()

FRayTracingShaderRHIRef FVulkanDynamicRHI::RHICreateRayTracingShader ( TArrayView< const uint8 Code,
const FSHAHash Hash,
EShaderFrequency  ShaderFrequency 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICreateRenderQuery()

FRenderQueryRHIRef FVulkanDynamicRHI::RHICreateRenderQuery ( ERenderQueryType  QueryType)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateSamplerState()

FSamplerStateRHIRef FVulkanDynamicRHI::RHICreateSamplerState ( const FSamplerStateInitializerRHI Initializer)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateShaderBindingTable()

FShaderBindingTableRHIRef FVulkanDynamicRHI::RHICreateShaderBindingTable ( FRHICommandListBase RHICmdList,
const FRayTracingShaderBindingTableInitializer Initializer 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICreateShaderResourceView()

FShaderResourceViewRHIRef FVulkanDynamicRHI::RHICreateShaderResourceView ( class FRHICommandListBase RHICmdList,
FRHIViewableResource Resource,
FRHIViewDesc const &  ViewDesc 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateStagingBuffer()

FStagingBufferRHIRef FVulkanDynamicRHI::RHICreateStagingBuffer ( )
finaloverridevirtual

Creates a staging buffer, which is memory visible to the cpu without any locking.

Returns
The new staging-buffer.

Reimplemented from FDynamicRHI.

◆ RHICreateTexture2DArrayFromResource()

FTextureRHIRef FVulkanDynamicRHI::RHICreateTexture2DArrayFromResource ( EPixelFormat  Format,
uint32  SizeX,
uint32  SizeY,
uint32  ArraySize,
uint32  NumMips,
uint32  NumSamples,
VkImage  Resource,
ETextureCreateFlags  Flags,
const FClearValueBinding ClearValueBinding = FClearValueBinding::Transparent 
)
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHICreateTexture2DFromResource()

FTextureRHIRef FVulkanDynamicRHI::RHICreateTexture2DFromResource ( EPixelFormat  Format,
uint32  SizeX,
uint32  SizeY,
uint32  NumMips,
uint32  NumSamples,
VkImage  Resource,
ETextureCreateFlags  Flags,
const FClearValueBinding ClearValueBinding = FClearValueBinding::Transparent,
const FVulkanRHIExternalImageDeleteCallbackInfo ExternalImageDeleteCallbackInfo = {} 
)
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHICreateTextureCubeFromResource()

FTextureRHIRef FVulkanDynamicRHI::RHICreateTextureCubeFromResource ( EPixelFormat  Format,
uint32  Size,
bool  bArray,
uint32  ArraySize,
uint32  NumMips,
VkImage  Resource,
ETextureCreateFlags  Flags,
const FClearValueBinding ClearValueBinding = FClearValueBinding::Transparent 
)
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHICreateTextureInitializer()

FRHITextureInitializer FVulkanDynamicRHI::RHICreateTextureInitializer ( FRHICommandListBase RHICmdList,
const FRHITextureCreateDesc CreateDesc 
)
virtual

Implements FDynamicRHI.

◆ RHICreateTextureReference()

FTextureReferenceRHIRef FVulkanDynamicRHI::RHICreateTextureReference ( FRHICommandListBase RHICmdList,
FRHITexture InReferencedTexture 
)
finaloverridevirtual

Create a texture reference. InReferencedTexture can be null.

Reimplemented from FDynamicRHI.

◆ RHICreateTransientResourceAllocator()

IRHITransientResourceAllocator * FVulkanDynamicRHI::RHICreateTransientResourceAllocator ( )
finaloverridevirtual

Create a new transient resource allocator

Reimplemented from FDynamicRHI.

◆ RHICreateTransition()

void FVulkanDynamicRHI::RHICreateTransition ( FRHITransition Transition,
const FRHITransitionCreateInfo CreateInfo 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICreateUniformBuffer()

FUniformBufferRHIRef FVulkanDynamicRHI::RHICreateUniformBuffer ( const void Contents,
const FRHIUniformBufferLayout Layout,
EUniformBufferUsage  Usage,
EUniformBufferValidation  Validation 
)
finaloverridevirtual

Creates a uniform buffer. The contents of the uniform buffer are provided in a parameter, and are immutable. CAUTION: Even though this is marked as threadsafe, it is only valid to call from the render thread or the RHI thread. Thus is need not be threadsafe on platforms that do not support or aren't using an RHIThread

Parameters
Contents- A pointer to a memory block of size NumBytes that is copied into the new uniform buffer.
NumBytes- The number of bytes the uniform buffer should contain.
Returns
The new uniform buffer.

Implements FDynamicRHI.

◆ RHICreateUnorderedAccessView()

FUnorderedAccessViewRHIRef FVulkanDynamicRHI::RHICreateUnorderedAccessView ( class FRHICommandListBase RHICmdList,
FRHIViewableResource Resource,
FRHIViewDesc const &  ViewDesc 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateVertexDeclaration()

FVertexDeclarationRHIRef FVulkanDynamicRHI::RHICreateVertexDeclaration ( const FVertexDeclarationElementList Elements)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateVertexShader()

FVertexShaderRHIRef FVulkanDynamicRHI::RHICreateVertexShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateViewport()

FViewportRHIRef FVulkanDynamicRHI::RHICreateViewport ( void WindowHandle,
uint32  SizeX,
uint32  SizeY,
bool  bIsFullscreen,
EPixelFormat  PreferredPixelFormat 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIDoesAdapterMatchDevice()

bool FVulkanDynamicRHI::RHIDoesAdapterMatchDevice ( const void InAdapterId) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIEndFrame()

void FVulkanDynamicRHI::RHIEndFrame ( const FRHIEndFrameArgs Args)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIEndFrame_RenderThread()

void FVulkanDynamicRHI::RHIEndFrame_RenderThread ( FRHICommandListImmediate RHICmdList)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIEndRenderQuery_TopOfPipe()

void FVulkanDynamicRHI::RHIEndRenderQuery_TopOfPipe ( FRHICommandListBase RHICmdList,
FRHIRenderQuery RenderQuery 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIEndRenderQueryBatch_TopOfPipe()

void FVulkanDynamicRHI::RHIEndRenderQueryBatch_TopOfPipe ( FRHICommandListBase RHICmdList,
ERenderQueryType  QueryType 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIEndUpdateTexture3D()

void FVulkanDynamicRHI::RHIEndUpdateTexture3D ( FRHICommandListBase RHICmdList,
FUpdateTexture3DData UpdateData 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIFinalizeContext()

void FVulkanDynamicRHI::RHIFinalizeContext ( FRHIFinalizeContextArgs &&  Args,
TRHIPipelineArray< IRHIPlatformCommandList * > &  Output 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIFinalizeParallelContext()

IRHIPlatformCommandList * FVulkanDynamicRHI::RHIFinalizeParallelContext ( IRHIComputeContext Context)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIFinishExternalComputeWork()

void FVulkanDynamicRHI::RHIFinishExternalComputeWork ( VkCommandBuffer  InCommandBuffer)
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIFlushResources()

void FVulkanDynamicRHI::RHIFlushResources ( )
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIGetActiveVkCommandBuffer()

VkCommandBuffer FVulkanDynamicRHI::RHIGetActiveVkCommandBuffer ( )
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetAllDeviceExtensions()

TArray< VkExtensionProperties > FVulkanDynamicRHI::RHIGetAllDeviceExtensions ( VkPhysicalDevice  InPhysicalDevice) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetAllInstanceExtensions()

TArray< VkExtensionProperties > FVulkanDynamicRHI::RHIGetAllInstanceExtensions ( ) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetAllocationInfo() [1/2]

FVulkanRHIAllocationInfo FVulkanDynamicRHI::RHIGetAllocationInfo ( FRHIBuffer InBuffer) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetAllocationInfo() [2/2]

FVulkanRHIAllocationInfo FVulkanDynamicRHI::RHIGetAllocationInfo ( FRHITexture InTexture) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetAvailableResolutions()

bool FVulkanDynamicRHI::RHIGetAvailableResolutions ( FScreenResolutionArray Resolutions,
bool  bIgnoreRefreshRate 
)
finaloverridevirtual

Retrieve available screen resolutions.

Parameters
ResolutionsTArray<FScreenResolutionRHI> parameter that will be filled in.
bIgnoreRefreshRateIf true, ignore refresh rates.
Returns
bool true if successfully filled the array

Implements FDynamicRHI.

◆ RHIGetCommandContext()

IRHIComputeContext * FVulkanDynamicRHI::RHIGetCommandContext ( ERHIPipeline  Pipeline,
FRHIGPUMask  GPUMask 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIGetDefaultContext()

IRHICommandContext * FVulkanDynamicRHI::RHIGetDefaultContext ( )
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIGetGraphicsAdapterLUID()

uint64 FVulkanDynamicRHI::RHIGetGraphicsAdapterLUID ( VkPhysicalDevice  InPhysicalDevice) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetGraphicsQueueFamilyIndex()

uint32 FVulkanDynamicRHI::RHIGetGraphicsQueueFamilyIndex ( ) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetGraphicsQueueIndex()

uint32 FVulkanDynamicRHI::RHIGetGraphicsQueueIndex ( ) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetGraphicsVkQueue()

VkQueue FVulkanDynamicRHI::RHIGetGraphicsVkQueue ( ) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetImageViewInfo()

FVulkanRHIImageViewInfo FVulkanDynamicRHI::RHIGetImageViewInfo ( FRHITexture InTexture) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetLoadedDeviceExtensions()

TArray< FAnsiString > FVulkanDynamicRHI::RHIGetLoadedDeviceExtensions ( ) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetMinimumAlignmentForBufferBackedSRV()

uint64 FVulkanDynamicRHI::RHIGetMinimumAlignmentForBufferBackedSRV ( EPixelFormat  Format)
finaloverridevirtual

Gets the minimum alignment (in bytes) required for creating a shader resource view on a buffer-backed resource.

Parameters
Format- EPixelFormat texture format of the SRV.

Reimplemented from FDynamicRHI.

◆ RHIGetNativeComputeQueue()

void * FVulkanDynamicRHI::RHIGetNativeComputeQueue ( )
finaloverridevirtual

Provides access to the native compute command queue. Generally this should be avoided but is useful for third party plugins.

Reimplemented from FDynamicRHI.

◆ RHIGetNativeDevice()

void * FVulkanDynamicRHI::RHIGetNativeDevice ( )
finaloverridevirtual

Provides access to the native device. Generally this should be avoided but is useful for third party plugins.

Implements FDynamicRHI.

◆ RHIGetNativeGraphicsQueue()

void * FVulkanDynamicRHI::RHIGetNativeGraphicsQueue ( )
finaloverridevirtual

Provides access to the native graphics command queue. Generally this should be avoided but is useful for third party plugins.

Reimplemented from FDynamicRHI.

◆ RHIGetNativeInstance()

void * FVulkanDynamicRHI::RHIGetNativeInstance ( )
finaloverridevirtual

Provides access to the native instance. Generally this should be avoided but is useful for third party plugins.

Implements FDynamicRHI.

◆ RHIGetNativePhysicalDevice()

void * FVulkanDynamicRHI::RHIGetNativePhysicalDevice ( )
finaloverridevirtual

Provides access to the native device. Generally this should be avoided but is useful for third party plugins.

Reimplemented from FDynamicRHI.

◆ RHIGetParallelCommandContext()

IRHIComputeContext * FVulkanDynamicRHI::RHIGetParallelCommandContext ( FRHIParallelRenderPassInfo const &  ParallelRenderPass,
FRHIGPUMask  GPUMask 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIGetRenderQueryResult()

bool FVulkanDynamicRHI::RHIGetRenderQueryResult ( FRHIRenderQuery RenderQuery,
uint64 OutResult,
bool  bWait,
uint32  GPUIndex = INDEX_NONE 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIGetSupportedResolution()

void FVulkanDynamicRHI::RHIGetSupportedResolution ( uint32 Width,
uint32 Height 
)
finaloverridevirtual

Returns a supported screen resolution that most closely matches input.

Parameters
Width- Input: Desired resolution width in pixels. Output: A width that the platform supports.
Height- Input: Desired resolution height in pixels. Output: A height that the platform supports.

Implements FDynamicRHI.

◆ RHIGetSwapChainVkFormat()

VkFormat FVulkanDynamicRHI::RHIGetSwapChainVkFormat ( EPixelFormat  InFormat) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetTextureMemoryStats()

void FVulkanDynamicRHI::RHIGetTextureMemoryStats ( FTextureMemoryStats OutStats)
finaloverridevirtual

Retrieves texture memory stats. safe to call on the main thread

Implements FDynamicRHI.

◆ RHIGetTextureMemoryVisualizeData()

bool FVulkanDynamicRHI::RHIGetTextureMemoryVisualizeData ( FColor TextureData,
int32  SizeX,
int32  SizeY,
int32  Pitch,
int32  PixelSize 
)
finaloverridevirtual

Fills a texture with to visualize the texture pool memory.

Parameters
TextureDataStart address
SizeXNumber of pixels along X
SizeYNumber of pixels along Y
PitchNumber of bytes between each row
PixelSizeNumber of bytes each pixel represents
Returns
true if successful, false otherwise

Implements FDynamicRHI.

◆ RHIGetUploadContext()

IRHIUploadContext * FVulkanDynamicRHI::RHIGetUploadContext ( )
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIGetViewportBackBuffer()

FTextureRHIRef FVulkanDynamicRHI::RHIGetViewportBackBuffer ( FRHIViewport Viewport)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIGetViewVkFormat()

VkFormat FVulkanDynamicRHI::RHIGetViewVkFormat ( FRHITexture InTexture) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetVkAllocationCallbacks()

const VkAllocationCallbacks * FVulkanDynamicRHI::RHIGetVkAllocationCallbacks ( )
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetVkDevice()

VkDevice FVulkanDynamicRHI::RHIGetVkDevice ( ) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetVkDeviceProcAddr()

void * FVulkanDynamicRHI::RHIGetVkDeviceProcAddr ( const char InName) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetVkImage()

VkImage FVulkanDynamicRHI::RHIGetVkImage ( FRHITexture InTexture) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetVkInstance()

VkInstance FVulkanDynamicRHI::RHIGetVkInstance ( ) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetVkInstanceGlobalProcAddr()

void * FVulkanDynamicRHI::RHIGetVkInstanceGlobalProcAddr ( const char InName) const
finaloverridevirtual

Version of RHIGetVkInstanceProcAddr that uses nullptr as the instance argument. See vkGetInstanceProcAddr manpage for distinction between "global" and non-global commands.

Implements IVulkanDynamicRHI.

◆ RHIGetVkInstanceProcAddr()

void * FVulkanDynamicRHI::RHIGetVkInstanceProcAddr ( const char InName) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetVkPhysicalDevice()

VkPhysicalDevice FVulkanDynamicRHI::RHIGetVkPhysicalDevice ( ) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetVulkanDeviceUUID()

const uint8 * FVulkanDynamicRHI::RHIGetVulkanDeviceUUID ( ) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIGetVulkanVersion()

uint32 FVulkanDynamicRHI::RHIGetVulkanVersion ( ) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIIsRenderingSuspended()

bool FVulkanDynamicRHI::RHIIsRenderingSuspended ( )
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHILockBuffer()

void * FVulkanDynamicRHI::RHILockBuffer ( FRHICommandListBase RHICmdList,
FRHIBuffer BufferRHI,
uint32  Offset,
uint32  Size,
EResourceLockMode  LockMode 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHILockStagingBuffer()

void * FVulkanDynamicRHI::RHILockStagingBuffer ( FRHIStagingBuffer StagingBuffer,
FRHIGPUFence Fence,
uint32  Offset,
uint32  SizeRHI 
)
finaloverridevirtual

Lock a staging buffer to read contents on the CPU that were written by the GPU, without having to stall. @discussion This function requires that you have issued an CopyToStagingBuffer invocation and verified that the FRHIGPUFence has been signaled before calling.

Parameters
StagingBufferThe buffer to lock.
FenceAn optional fence synchronized with the last buffer update.
OffsetThe offset in the buffer to return.
SizeRHIThe length of the region in the buffer to lock.
Returns
A pointer to the data starting at 'Offset' and of length 'SizeRHI' from 'StagingBuffer', or nullptr when there is an error.

Reimplemented from FDynamicRHI.

◆ RHILockTexture()

FRHILockTextureResult FVulkanDynamicRHI::RHILockTexture ( FRHICommandListImmediate RHICmdList,
const FRHILockTextureArgs Arguments 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIMapStagingSurface()

void FVulkanDynamicRHI::RHIMapStagingSurface ( FRHITexture Texture,
FRHIGPUFence Fence,
void *&  OutData,
int32 OutWidth,
int32 OutHeight,
uint32  GPUIndex = 0 
)
finaloverridevirtual

Implemented by the platform to read directly from the texture. Useful for getting the last back buffer content after a crash. As the RHIReadSurfaceData implementation will copy the texture's content to a new temporary buffer, that won't work for an unknown crash state. Watch out for OutData to be 0 (can happen on DXGI_ERROR_DEVICE_REMOVED), don't call RHIUnmapStagingSurface in that case.

Implements FDynamicRHI.

◆ RHIMatchPrecachePSOInitializers()

bool FVulkanDynamicRHI::RHIMatchPrecachePSOInitializers ( const FGraphicsPipelineStateInitializer LHS,
const FGraphicsPipelineStateInitializer RHS 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIRead3DSurfaceFloatData()

void FVulkanDynamicRHI::RHIRead3DSurfaceFloatData ( FRHITexture Texture,
FIntRect  Rect,
FIntPoint  ZMinMax,
TArray< FFloat16Color > &  OutData 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIReadSurfaceData() [1/2]

void FVulkanDynamicRHI::RHIReadSurfaceData ( FRHITexture Texture,
FIntRect  Rect,
TArray< FColor > &  OutData,
FReadSurfaceDataFlags  InFlags 
)
finaloverridevirtual

Reads the contents of a texture to an output buffer (non MSAA and MSAA) and returns it as a FColor array. If the format or texture type is unsupported the OutData array will be size 0

Implements FDynamicRHI.

◆ RHIReadSurfaceData() [2/2]

void FVulkanDynamicRHI::RHIReadSurfaceData ( FRHITexture Texture,
FIntRect  Rect,
TArray< FLinearColor > &  OutData,
FReadSurfaceDataFlags  InFlags 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIReadSurfaceFloatData()

void FVulkanDynamicRHI::RHIReadSurfaceFloatData ( FRHITexture Texture,
FIntRect  Rect,
TArray< FFloat16Color > &  OutData,
ECubeFace  CubeFace,
int32  ArrayIndex,
int32  MipIndex 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIRegisterWork()

void FVulkanDynamicRHI::RHIRegisterWork ( uint32  NumPrimitives)
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIReleaseTransition()

void FVulkanDynamicRHI::RHIReleaseTransition ( FRHITransition Transition)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIReplaceResources()

void FVulkanDynamicRHI::RHIReplaceResources ( FRHICommandListBase RHICmdList,
TArray< FRHIResourceReplaceInfo > &&  ReplaceInfos 
)
finaloverridevirtual

Transfer metadata and underlying resource from src to dest and release any resource owned by dest.

Parameters
DestBuffer- the buffer to update
SrcBuffer- don't use after call. If null, will release any resource owned by DestBuffer

Implements FDynamicRHI.

◆ RHIResizeViewport() [1/2]

void FVulkanDynamicRHI::RHIResizeViewport ( FRHIViewport Viewport,
uint32  SizeX,
uint32  SizeY,
bool  bIsFullscreen 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIResizeViewport() [2/2]

void FVulkanDynamicRHI::RHIResizeViewport ( FRHIViewport Viewport,
uint32  SizeX,
uint32  SizeY,
bool  bIsFullscreen,
EPixelFormat  PreferredPixelFormat 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIResumeRendering()

void FVulkanDynamicRHI::RHIResumeRendering ( )
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIRunOnQueue()

void FVulkanDynamicRHI::RHIRunOnQueue ( EVulkanRHIRunOnQueueType  QueueType,
TFunction< void(VkQueue)> &&  CodeToRun,
bool  bWaitForSubmission 
)
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHISetImageLayout()

void FVulkanDynamicRHI::RHISetImageLayout ( VkImage  Image,
VkImageLayout  OldLayout,
VkImageLayout  NewLayout,
const VkImageSubresourceRange SubresourceRange 
)
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHISetUploadImageLayout()

void FVulkanDynamicRHI::RHISetUploadImageLayout ( VkImage  Image,
VkImageLayout  OldLayout,
VkImageLayout  NewLayout,
const VkImageSubresourceRange SubresourceRange 
)
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHISubmitCommandLists()

void FVulkanDynamicRHI::RHISubmitCommandLists ( FRHISubmitCommandListsArgs &&  Args)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHISubmitUploadCommandBuffer()

void FVulkanDynamicRHI::RHISubmitUploadCommandBuffer ( )
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHISupportsEXTFragmentDensityMap2()

bool FVulkanDynamicRHI::RHISupportsEXTFragmentDensityMap2 ( ) const
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHISuspendRendering()

void FVulkanDynamicRHI::RHISuspendRendering ( )
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHITick()

void FVulkanDynamicRHI::RHITick ( float  DeltaTime)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIUnlockBuffer()

void FVulkanDynamicRHI::RHIUnlockBuffer ( FRHICommandListBase RHICmdList,
FRHIBuffer Buffer 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIUnlockStagingBuffer()

void FVulkanDynamicRHI::RHIUnlockStagingBuffer ( FRHIStagingBuffer StagingBuffer)
finaloverridevirtual

Unlock a staging buffer previously locked with RHILockStagingBuffer.

Parameters
StagingBufferThe buffer that was previously locked.

Reimplemented from FDynamicRHI.

◆ RHIUnlockTexture()

void FVulkanDynamicRHI::RHIUnlockTexture ( FRHICommandListImmediate RHICmdList,
const FRHILockTextureArgs Arguments 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIUnmapStagingSurface()

void FVulkanDynamicRHI::RHIUnmapStagingSurface ( FRHITexture Texture,
uint32  GPUIndex = 0 
)
finaloverridevirtual

call after a succesful RHIMapStagingSurface() call

Implements FDynamicRHI.

◆ RHIUpdateTexture2D()

virtual void FVulkanDynamicRHI::RHIUpdateTexture2D ( FRHICommandListBase RHICmdList,
FRHITexture Texture,
uint32  MipIndex,
const struct FUpdateTextureRegion2D UpdateRegion,
uint32  SourcePitch,
const uint8 SourceData 
)
inlinefinaloverridevirtual

Updates a region of a 2D texture from system memory

Parameters
Texture- the RHI texture resource to update
MipIndex- mip level index to be modified
UpdateRegion- The rectangle to copy source image data from
SourcePitch- size in bytes of each row of the source image
SourceData- source image data, starting at the upper left corner of the source rectangle (in same pixel format as texture)

Implements FDynamicRHI.

◆ RHIUpdateTexture3D()

virtual void FVulkanDynamicRHI::RHIUpdateTexture3D ( FRHICommandListBase RHICmdList,
FRHITexture Texture,
uint32  MipIndex,
const struct FUpdateTextureRegion3D UpdateRegion,
uint32  SourceRowPitch,
uint32  SourceDepthPitch,
const uint8 SourceData 
)
inlinefinaloverridevirtual

Updates a region of a 3D texture from system memory

Parameters
Texture- the RHI texture resource to update
MipIndex- mip level index to be modified
UpdateRegion- The rectangle to copy source image data from
SourceRowPitch- size in bytes of each row of the source image, usually Bpp * SizeX
SourceDepthPitch- size in bytes of each depth slice of the source image, usually Bpp * SizeX * SizeY
SourceData- source image data, starting at the upper left corner of the source rectangle (in same pixel format as texture)

Implements FDynamicRHI.

◆ RHIUpdateTextureReference()

void FVulkanDynamicRHI::RHIUpdateTextureReference ( FRHICommandListBase RHICmdList,
FRHITextureReference TextureRef,
FRHITexture NewTexture 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIUpdateUniformBuffer()

void FVulkanDynamicRHI::RHIUpdateUniformBuffer ( FRHICommandListBase RHICmdList,
FRHIUniformBuffer UniformBufferRHI,
const void Contents 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIVerifyResult()

void FVulkanDynamicRHI::RHIVerifyResult ( VkResult  Result,
const ANSICHAR VkFuntion,
const ANSICHAR Filename,
uint32  Line 
)
finaloverridevirtual

Implements IVulkanDynamicRHI.

◆ RHIWriteGPUFence_TopOfPipe()

void FVulkanDynamicRHI::RHIWriteGPUFence_TopOfPipe ( FRHICommandListBase RHICmdList,
FRHIGPUFence FenceRHI 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ SavePipelineCache()

void FVulkanDynamicRHI::SavePipelineCache ( )
static

◆ SelectDevice()

void FVulkanDynamicRHI::SelectDevice ( )
protected

◆ SetupInstanceLayers()

TArray< const ANSICHAR * > FVulkanDynamicRHI::SetupInstanceLayers ( FVulkanInstanceExtensionArray UEExtensions)
protected

◆ SetupValidationRequests()

void FVulkanDynamicRHI::SetupValidationRequests ( )
staticprotected

◆ Shutdown()

void FVulkanDynamicRHI::Shutdown ( )
finaloverridevirtual

Shutdown the RHI; handle shutdown and resource destruction before the RHI's actual destructor is called (so that all resources of the RHI are still available for shutdown).

Implements FDynamicRHI.

◆ ShutdownSubmissionPipe()

void FVulkanDynamicRHI::ShutdownSubmissionPipe ( )
protected

◆ SupportsDebugUtilsExt()

bool FVulkanDynamicRHI::SupportsDebugUtilsExt ( ) const
inline

◆ TerminateOnGPUCrash()

void FVulkanDynamicRHI::TerminateOnGPUCrash ( const TCHAR Message)

◆ UnlockBuffer_BottomOfPipe()

void FVulkanDynamicRHI::UnlockBuffer_BottomOfPipe ( FRHICommandListBase RHICmdList,
FRHIBuffer Buffer 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ UpdateUniformBuffer()

void FVulkanDynamicRHI::UpdateUniformBuffer ( FRHICommandListBase RHICmdList,
FVulkanUniformBuffer UniformBuffer,
const void Contents 
)
inlineprotected

◆ VulkanSetImageLayout()

void FVulkanDynamicRHI::VulkanSetImageLayout ( VkCommandBuffer  CmdBuffer,
VkImage  Image,
VkImageLayout  OldLayout,
VkImageLayout  NewLayout,
const VkImageSubresourceRange SubresourceRange 
)

◆ WaitAndProcessInterruptQueue()

bool FVulkanDynamicRHI::WaitAndProcessInterruptQueue ( )
protected

Friends And Related Symbol Documentation

◆ FVulkanCommandListContext

◆ FVulkanViewport

friend class FVulkanViewport
friend

Member Data Documentation

◆ ActiveDebugLayerExtension

EActiveDebugLayerExtension FVulkanDynamicRHI::ActiveDebugLayerExtension = EActiveDebugLayerExtension::None
protected

◆ ApiVersion

uint32 FVulkanDynamicRHI::ApiVersion = 0
protected

◆ bIsStandaloneStereoDevice

bool FVulkanDynamicRHI::bIsStandaloneStereoDevice = false
protected

◆ CPUTimelineSemaphore

FVulkanSemaphore* FVulkanDynamicRHI::CPUTimelineSemaphore = nullptr
protected

◆ CPUTimelineSemaphoreValue

std::atomic<uint64> FVulkanDynamicRHI::CPUTimelineSemaphoreValue = 1
protected

◆ Device

FVulkanDevice* FVulkanDynamicRHI::Device
protected

◆ EopTask

FGraphEventRef FVulkanDynamicRHI::EopTask
protected

◆ ExternalGPUTime

TOptional<uint64> FVulkanDynamicRHI::ExternalGPUTime

◆ HMDVulkanExtensions

TSharedPtr< IHeadMountedDisplayVulkanExtensions, ESPMode::ThreadSafe > FVulkanDynamicRHI::HMDVulkanExtensions
static

◆ Instance

VkInstance FVulkanDynamicRHI::Instance
protected

◆ InstanceExtensions

TArray<const ANSICHAR*> FVulkanDynamicRHI::InstanceExtensions
protected

◆ InstanceLayers

TArray<const ANSICHAR*> FVulkanDynamicRHI::InstanceLayers
protected

◆ InterruptCS

FCriticalSection FVulkanDynamicRHI::InterruptCS
protected

◆ InterruptThread

FVulkanThread* FVulkanDynamicRHI::InterruptThread = nullptr
protected

◆ InterruptThreadID

uint32 FVulkanDynamicRHI::InterruptThreadID = 0
protected

◆ LockBufferCS

FCriticalSection FVulkanDynamicRHI::LockBufferCS
protected

◆ OptionalInstanceExtensions

FOptionalVulkanInstanceExtensions FVulkanDynamicRHI::OptionalInstanceExtensions
protected

◆ PendingPayloadsForSubmission

TQueue<FVulkanPlatformCommandList*, EQueueMode::Mpsc> FVulkanDynamicRHI::PendingPayloadsForSubmission
protected

◆ RebuildPipelineCacheCmd

IConsoleObject* FVulkanDynamicRHI::RebuildPipelineCacheCmd = nullptr
protected

◆ SavePipelineCacheCmd

IConsoleObject* FVulkanDynamicRHI::SavePipelineCacheCmd = nullptr
protected

◆ SignaledSemaphores

TMap<VkSemaphore, FBinarySemaphoreSignalInfo> FVulkanDynamicRHI::SignaledSemaphores
protected

◆ SubmissionCS

FCriticalSection FVulkanDynamicRHI::SubmissionCS
protected

◆ SubmissionThread

FVulkanThread* FVulkanDynamicRHI::SubmissionThread = nullptr
protected

◆ TotalPresentCount

uint32 FVulkanDynamicRHI::TotalPresentCount = 0

◆ Viewports

TArray<FVulkanViewport*> FVulkanDynamicRHI::Viewports
protected

A list of all viewport RHIs that have been created.


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