Language:
Discover
By Skill Level
By Category

FVulkanDynamicRHI

Choose your OS:

Inheritance Hierarchy

FDynamicRHI

FVulkanDynamicRHI

Syntax

class FVulkanDynamicRHI : public FDynamicRHI

Remarks

The interface which is implemented by the dynamically bound RHI.

Variables

Name Description

Protected variable

bool

 

bSupportsDebugUtilsExt

Protected variable

FVulkanDevice &...

 

Device

Protected variable

TArray < FVulkan...

 

Devices

Protected variable

TRefCountPtr < F ...

 

DrawingViewport

The viewport which is currently being drawn.

Protected variable

VkInstance

 

Instance

Protected variable

TArray < const A ...

 

InstanceExtensions

Protected variable

TArray < const A ...

 

InstanceLayers

Protected variable

FCriticalSectio ...

 

LockBufferCS

Protected variable

IConsoleObject ...

 

RebuildPipelineCacheCmd

Protected variable

IConsoleObject ...

 

SavePipelineCacheCmd

Public variable

uint32

 

TotalPresentCount

Historical number of times we've presented any and all viewports.

Protected variable

TArray < FVulkan ...

 

Viewports

A list of all viewport RHIs that have been created.

Constructors

Name Description

Public function

FVulkanDynamicRHI()

Initialization constructor.

Destructors

Name Description

Public function

~FVulkanDynamicRHI()

Destructor

Functions

Name Description

Protected function

void

 

CreateInstance()

Public function

FVulkanDevic...

 

GetDevice()

Public function

VkInstance

 

GetInstance()

Public function

const TArray ...

 

GetInstanceExtensions()

Public function

const TArray ...

 

GetInstanceLayers()

Protected function Static

void

 

GetInstanceLayersAndExtensions

(
    TArray < const ANSICHAR * >& Ou...,
    TArray < const ANSICHAR * >& Ou...,
    bool& bOutDebugUtils
)

Static void WriteEndFrameTimestamp(void*);

Protected function

void

 

InitDevice

(
    FVulkanDevice* Device
)

Protected function

void

 

InitGPU

(
    FVulkanDevice* Device
)

Public function

void

 

InitInstance()

Protected function

void

 

InternalUnlockTexture2D

(
    bool bFromRenderingThread,
    FTexture2DRHIParamRef Texture,
    uint32 MipIndex,
    bool bLockWithinMiptail
)

Protected function

void

 

InternalUpdateTexture2D

(
    bool bFromRenderingThread,
    FTexture2DRHIParamRef TextureRHI,
    uint32 MipIndex,
    const FUpdateTextureRegion2D & Upda...,
    uint32 SourcePitch,
    const uint8 * SourceData
)

Protected function

void

 

InternalUpdateTexture3D

(
    bool bFromRenderingThread,
    FTexture3DRHIParamRef TextureRHI,
    uint32 MipIndex,
    const FUpdateTextureRegion3D & Upda...,
    uint32 SourceRowPitch,
    uint32 SourceDepthPitch,
    const uint8 * SourceData
)

Protected function Static

void

 

RebuildPipelineCache()

Public function Static

void

 

RecreateSwapChain

(
    void* NewNativeWindow
)

Public function Virtual

void

 

RHIAliasTextureResources

(
    FTextureRHIParamRef DestTexture,
    FTextureRHIParamRef SrcTexture
)

Public function Virtual

FTexture2DAr ...

 

RHICreateTexture2DArrayFromResource

(
    EPixelFormat Format,
    uint32 SizeX,
    uint32 SizeY,
    uint32 ArraySize,
    uint32 NumMips,
    VkImage Resource,
    uint32 Flags
)

Public function Virtual

FTexture2DRH ...

 

RHICreateTexture2DFromResource

(
    EPixelFormat Format,
    uint32 SizeX,
    uint32 SizeY,
    uint32 NumMips,
    uint32 NumSamples,
    uint32 NumSamplesTileMem,
    VkImage Resource,
    uint32 Flags
)

FVulkanDynamicRHI interface.

Public function Virtual

FTexture2DRH ...

 

RHICreateTexture2DFromResource

(
    EPixelFormat Format,
    uint32 SizeX,
    uint32 SizeY,
    uint32 NumMips,
    uint32 NumSamples,
    VkImage Resource,
    FSamplerYcbcrConversionInitializer ...,
    uint32 Flags
)

Public function Virtual

FTextureCube ...

 

RHICreateTextureCubeFromResource

(
    EPixelFormat Format,
    uint32 Size,
    bool bArray,
    uint32 ArraySize,
    uint32 NumMips,
    VkImage Resource,
    uint32 Flags
)

Public function Static

void

 

SavePipelineCache()

Protected function

void

 

SelectAndInitDevice()

Protected function

bool

 

ShouldDeferBufferLockOperation

(
    FRHICommandList * RHICmdList
)

Public function

bool

 

SupportsDebugUtilsExt()

Public function Virtual

void

 

VulkanSetImageLayout

(
    VkCommandBuffer CmdBuffer,
    VkImage Image,
    VkImageLayout OldLayout,
    VkImageLayout NewLayout,
    const VkImageSubresourceRange& Sub...
)

Overridden from FDynamicRHI

Name Description

Public function Virtual

FTexture2DRH ...

 

AsyncReallocateTexture2D_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FTexture2DRHIParamRef Texture2D,
    int32 NewMipCount,
    int32 NewSizeX,
    int32 NewSizeY,
    FThreadSafeCounter * RequestSta...
)

Pass through functions that allow RHIs to optimize certain calls.

Public function Virtual

FComputeShad ...

 

CreateComputeShader_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    const TArray < uint8 >& Code
)

Virtual FGeometryShaderRHIRef CreateGeometryShaderWithStreamOutput_RenderThread(class FRHICommandListImmediate& RHICmdList, const FStreamOutElementList& ElementList, uint32 NumStrides, const uint32* Strides, int32 RasterizedStream, FRHIShaderLibraryParamRef Library, FSHAHash Hash) override final;

Public function Virtual

FDomainShade ...

 

CreateDomainShader_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    const TArray < uint8 >& Code
)

Virtual FHullShaderRHIRef CreateHullShader_RenderThread(class FRHICommandListImmediate& RHICmdList, FRHIShaderLibraryParamRef Library, FSHAHash Hash) override final;

Public function Virtual

FGeometrySha ...

 

CreateGeometryShader_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    const TArray < uint8 >& Code
)

Virtual FPixelShaderRHIRef CreatePixelShader_RenderThread(class FRHICommandListImmediate& RHICmdList, FRHIShaderLibraryParamRef Library, FSHAHash Hash) override final;

Public function Virtual

FGeometrySha ...

 

CreateGeometryShaderWithStreamOutput_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    const TArray < uint8 >& Code,
    const FStreamOutElementList & Eleme...,
    uint32 NumStrides,
    const uint32 * Strides,
    int32 RasterizedStream
)

Virtual FGeometryShaderRHIRef CreateGeometryShader_RenderThread(class FRHICommandListImmediate& RHICmdList, FRHIShaderLibraryParamRef Library, FSHAHash Hash) override final;

Public function Virtual

FHullShaderR ...

 

CreateHullShader_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    const TArray < uint8 >& Code
)

Virtual FComputeShaderRHIRef CreateComputeShader_RenderThread(class FRHICommandListImmediate& RHICmdList, FRHIShaderLibraryParamRef Library, FSHAHash Hash) override final;

Public function Virtual

FPixelShader ...

 

CreatePixelShader_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    const TArray < uint8 >& Code
)

Virtual FVertexShaderRHIRef CreateVertexShader_RenderThread(class FRHICommandListImmediate& RHICmdList, FRHIShaderLibraryParamRef Library, FSHAHash Hash) override final;

Public function Virtual

FShaderResou ...

 

CreateShaderResourceView_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FVertexBufferRHIParamRef VertexBuff...,
    uint32 Stride,
    uint8 Format
)

Public function Virtual

FVertexDecla ...

 

CreateVertexDeclaration_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    const FVertexDeclarationElementList ...
)

Virtual ETextureReallocationStatus CancelAsyncReallocateTexture2D_RenderThread(class FRHICommandListImmediate& RHICmdList, FTexture2DRHIParamRef Texture2D, bool bBlockUntilCompleted) override final; virtual FIndexBufferRHIRef CreateIndexBuffer_RenderThread(class FRHICommandListImmediate& RHICmdList, uint32 Stride, uint32 Size, uint32 InUsage, FRHIResourceCreateInfo& CreateInfo) override final;

Public function Virtual

FVertexShade ...

 

CreateVertexShader_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    const TArray < uint8 >& Code
)

Public function Virtual

ETextureReal ...

 

FinalizeAsyncReallocateTexture2D_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FTexture2DRHIParamRef Texture2D,
    bool bBlockUntilCompleted
)

Public function Virtual

const TCHAR ...

 

GetName()

Public function Virtual

void

 

Init()

FDynamicRHI interface.

Public function Virtual

void *

 

LockTexture2D_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FTexture2DRHIParamRef Texture,
    uint32 MipIndex,
    EResourceLockMode LockMode,
    uint32 & DestStride,
    bool bLockWithinMiptail,
    bool bNeedsDefaultRHIFlush
)

Virtual FDomainShaderRHIRef CreateDomainShader_RenderThread(class FRHICommandListImmediate& RHICmdList, FRHIShaderLibraryParamRef Library, FSHAHash Hash) override final;

Public function Virtual

void

 

PostInit()

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

Public function Virtual

void

 

RHIAcquireThreadOwnership()

FlushType: Flush RHI Thread.

Public function Virtual

void

 

RHIAdvanceFrameForGetViewportBackBuffer

(
    FViewportRHIParamRef Viewport
)

Only relevant with an RHI thread, this advances the backbuffer for the purpose of GetViewportBackBuffer FlushType: Thread safe

Public function Virtual

FTexture2DRH ...

 

RHIAsyncCreateTexture2D

(
    uint32 SizeX,
    uint32 SizeY,
    uint8 Format,
    uint32 NumMips,
    uint32 Flags,
    void** InitialMipData,
    uint32 NumInitialMips
)

FlushType: Thread safe.

Public function Virtual

FTexture2DRH ...

 

RHIAsyncReallocateTexture2D

(
    FTexture2DRHIParamRef Texture2D,
    int32 NewMipCount,
    int32 NewSizeX,
    int32 NewSizeY,
    FThreadSafeCounter * RequestSta...
)

Starts an asynchronous texture reallocation.

Public function Virtual

void

 

RHIBindDebugLabelName

(
    FUnorderedAccessViewRHIParamRef Uno...,
    const TCHAR * Name
)

Public function Virtual

void

 

RHIBindDebugLabelName

(
    FTextureRHIParamRef Texture,
    const TCHAR * Name
)

FlushType: Thread safe.

Public function Virtual

void

 

RHIBlockUntilGPUIdle()

Blocks the CPU until the GPU catches up and goes idle. FlushType: Flush Immediate (seems wrong)

Public function Virtual

uint64

 

RHICalcTexture2DPlatformSize

(
    uint32 SizeX,
    uint32 SizeY,
    uint8 Format,
    uint32 NumMips,
    uint32 NumSamples,
    uint32 Flags,
    uint32 & OutAlign
)

FlushType: Thread safe.

Public function Virtual

uint64

 

RHICalcTexture3DPlatformSize

(
    uint32 SizeX,
    uint32 SizeY,
    uint32 SizeZ,
    uint8 Format,
    uint32 NumMips,
    uint32 Flags,
    uint32 & OutAlign
)

FlushType: Thread safe.

Public function Virtual

uint64

 

RHICalcTextureCubePlatformSize

(
    uint32 Size,
    uint8 Format,
    uint32 NumMips,
    uint32 Flags,
    uint32 & OutAlign
)

FlushType: Thread safe.

Public function Virtual

void

 

RHICalibrateTimers()

Public function Virtual

ETextureReal ...

 

RHICancelAsyncReallocateTexture2D

(
    FTexture2DRHIParamRef Texture2D,
    bool bBlockUntilCompleted
)

FlushType: Wait RHI Thread.

Public function Virtual

uint32

 

RHIComputeMemorySize

(
    FTextureRHIParamRef TextureRHI
)

FlushType: Thread safe.

Public function Virtual

void

 

RHICopySharedMips

(
    FTexture2DRHIParamRef DestTexture2D,
    FTexture2DRHIParamRef SrcTexture2D
)

FlushType: Flush RHI Thread.

Public function Virtual

void

 

RHICopyVertexBuffer

(
    FVertexBufferRHIParamRef SourceBuff...,
    FVertexBufferRHIParamRef DestBuffer
)

FlushType: Flush Immediate (seems dangerous)

Public function Virtual

FBlendStateR ...

 

RHICreateBlendState

(
    const FBlendStateInitializerRHI & I...
)

FlushType: Thread safe.

Public function Virtual

FBoundShader ...

 

RHICreateBoundShaderState

(
    FVertexDeclarationRHIParamRef Verte...,
    FVertexShaderRHIParamRef VertexShad...,
    FHullShaderRHIParamRef HullShader,
    FDomainShaderRHIParamRef DomainShad...,
    FPixelShaderRHIParamRef PixelShader,
    FGeometryShaderRHIParamRef Geometry...
)

FlushType: Thread safe, but varies depending on the RHI.

Public function Virtual

FComputeFenc ...

 

RHICreateComputeFence

(
    const FName & Name
)

FlushType: Thread safe, but varies depending on the RHI.

Public function Virtual

FComputeShad ...

 

RHICreateComputeShader

(
    const TArray < uint8 >& Code
)

FlushType: Wait RHI Thread.

Public function Virtual

FDepthStenci ...

 

RHICreateDepthStencilState

(
    const FDepthStencilStateInitializer ...
)

FlushType: Thread safe.

Public function Virtual

FDomainShade ...

 

RHICreateDomainShader

(
    const TArray < uint8 >& Code
)

FlushType: Wait RHI Thread.

Public function Virtual

FGeometrySha ...

 

RHICreateGeometryShader

(
    const TArray < uint8 >& Code
)

FlushType: Wait RHI Thread.

Public function Virtual

FGeometrySha ...

 

RHICreateGeometryShaderWithStreamOutput

(
    const TArray < uint8 >& Code,
    const FStreamOutElementList & Eleme...,
    uint32 NumStrides,
    const uint32 * Strides,
    int32 RasterizedStream
)

FlushType: Wait RHI Thread.

Public function Virtual

FGPUFenceRHI ...

 

RHICreateGPUFence

(
    const FName & Name
)

Public function Virtual

FGraphicsPip ...

 

RHICreateGraphicsPipelineState

(
    const FGraphicsPipelineStateInitial ...
)

Creates a graphics pipeline state object (PSO) that represents a complete gpu pipeline for rendering.

Public function Virtual

FHullShaderR ...

 

RHICreateHullShader

(
    const TArray < uint8 >& Code
)

FlushType: Wait RHI Thread.

Public function Virtual

FIndexBuffer ...

 

RHICreateIndexBuffer

(
    uint32 Stride,
    uint32 Size,
    uint32 InUsage,
    FRHIResourceCreateInfo & CreateInfo
)

FlushType: Wait RHI Thread.

Public function Virtual

FPixelShader ...

 

RHICreatePixelShader

(
    const TArray < uint8 >& Code
)

FlushType: Wait RHI Thread.

Public function Virtual

FRasterizerS ...

 

RHICreateRasterizerState

(
    const FRasterizerStateInitializerRH ...
)

FlushType: Thread safe.

Public function Virtual

FRenderQuery ...

 

RHICreateRenderQuery

(
    ERenderQueryType QueryType
)

FlushType: Wait RHI Thread.

Public function Virtual

FRenderQuery ...

 

RHICreateRenderQuery_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    ERenderQueryType QueryType
)

Public function Virtual

FSamplerStat ...

 

RHICreateSamplerState

(
    const FSamplerStateInitializerRHI &...
)

FlushType: Thread safe.

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView

(
    FTexture2DRHIParamRef Texture2DRHI,
    uint8 MipLevel,
    uint8 NumMipLevels,
    uint8 Format
)

FlushType: Wait RHI Thread.

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView

(
    FVertexBufferRHIParamRef VertexBuff...,
    uint32 Stride,
    uint8 Format
)

FlushType: Wait RHI Thread.

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView

(
    FTextureCubeRHIParamRef TextureCube...,
    uint8 MipLevel
)

FlushType: Wait RHI Thread.

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView

(
    FTexture2DArrayRHIParamRef Texture2...,
    uint8 MipLevel
)

FlushType: Wait RHI Thread.

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView

(
    FTexture3DRHIParamRef Texture3DRHI,
    uint8 MipLevel
)

FlushType: Wait RHI Thread.

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView

(
    FTexture2DRHIParamRef Texture2DRHI,
    uint8 MipLevel
)

FlushType: Wait RHI Thread.

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView

(
    FIndexBufferRHIParamRef Buffer
)

FlushType: Wait RHI Thread.

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView

(
    FStructuredBufferRHIParamRef Struct...
)

FlushType: Wait RHI Thread.

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FTexture2DRHIParamRef Texture2DRHI,
    uint8 MipLevel,
    uint8 NumMipLevels,
    uint8 Format
)

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FVertexBufferRHIParamRef VertexBuff...,
    uint32 Stride,
    uint8 Format
)

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FTextureCubeRHIParamRef TextureCube...,
    uint8 MipLevel
)

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FTexture2DArrayRHIParamRef Texture2...,
    uint8 MipLevel
)

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FStructuredBufferRHIParamRef Struct...
)

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FTexture2DRHIParamRef Texture2DRHI,
    uint8 MipLevel
)

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FTexture3DRHIParamRef Texture3DRHI,
    uint8 MipLevel
)

Public function Virtual

FStagingBuff ...

 

RHICreateStagingBuffer

(
    FVertexBufferRHIParamRef BackingBuf...
)

FlushType: Thread safe.

Public function Virtual

FStructuredB ...

 

RHICreateStructuredBuffer

(
    uint32 Stride,
    uint32 Size,
    uint32 InUsage,
    FRHIResourceCreateInfo & CreateInfo
)

FlushType: Wait RHI Thread.

Public function Virtual

FTexture2DRH ...

 

RHICreateTexture2D

(
    uint32 SizeX,
    uint32 SizeY,
    uint8 Format,
    uint32 NumMips,
    uint32 NumSamples,
    uint32 Flags,
    FRHIResourceCreateInfo & CreateInfo
)

2D texture support.

Public function Virtual

FTexture2DRH ...

 

RHICreateTexture2D_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    uint32 SizeX,
    uint32 SizeY,
    uint8 Format,
    uint32 NumMips,
    uint32 NumSamples,
    uint32 Flags,
    FRHIResourceCreateInfo & CreateInfo
)

Public function Virtual

FTexture2DAr ...

 

RHICreateTexture2DArray

(
    uint32 SizeX,
    uint32 SizeY,
    uint32 SizeZ,
    uint8 Format,
    uint32 NumMips,
    uint32 Flags,
    FRHIResourceCreateInfo & CreateInfo
)

FlushType: Wait RHI Thread.

Public function Virtual

FTexture2DAr ...

 

RHICreateTexture2DArray_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    uint32 SizeX,
    uint32 SizeY,
    uint32 SizeZ,
    uint8 Format,
    uint32 NumMips,
    uint32 Flags,
    FRHIResourceCreateInfo & CreateInfo
)

Public function Virtual

FTexture3DRH ...

 

RHICreateTexture3D

(
    uint32 SizeX,
    uint32 SizeY,
    uint32 SizeZ,
    uint8 Format,
    uint32 NumMips,
    uint32 Flags,
    FRHIResourceCreateInfo & CreateInfo
)

FlushType: Wait RHI Thread.

Public function Virtual

FTexture3DRH ...

 

RHICreateTexture3D_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    uint32 SizeX,
    uint32 SizeY,
    uint32 SizeZ,
    uint8 Format,
    uint32 NumMips,
    uint32 Flags,
    FRHIResourceCreateInfo & CreateInfo
)

Public function Virtual

FTextureCube ...

 

RHICreateTextureCube

(
    uint32 Size,
    uint8 Format,
    uint32 NumMips,
    uint32 Flags,
    FRHIResourceCreateInfo & CreateInfo
)

Cubemap texture support.

Public function Virtual

FTextureCube ...

 

RHICreateTextureCube_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    uint32 Size,
    uint8 Format,
    uint32 NumMips,
    uint32 Flags,
    FRHIResourceCreateInfo & CreateInfo
)

Public function Virtual

FTextureCube ...

 

RHICreateTextureCubeArray

(
    uint32 Size,
    uint32 ArraySize,
    uint8 Format,
    uint32 NumMips,
    uint32 Flags,
    FRHIResourceCreateInfo & CreateInfo
)

FlushType: Wait RHI Thread.

Public function Virtual

FTextureCube ...

 

RHICreateTextureCubeArray_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    uint32 Size,
    uint32 ArraySize,
    uint8 Format,
    uint32 NumMips,
    uint32 Flags,
    FRHIResourceCreateInfo & CreateInfo
)

Public function Virtual

FTexture2DRH ...

 

RHICreateTextureExternal2D_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    uint32 SizeX,
    uint32 SizeY,
    uint8 Format,
    uint32 NumMips,
    uint32 NumSamples,
    uint32 Flags,
    FRHIResourceCreateInfo & CreateInfo
)

Public function Virtual

FTextureRefe ...

 

RHICreateTextureReference

(
    FLastRenderTimeContainer * Last...
)

FlushType: Wait RHI Thread.

Public function Virtual

FTextureRefe ...

 

RHICreateTextureReference_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FLastRenderTimeContainer * Last...
)

Public function Virtual

FUniformBuff ...

 

RHICreateUniformBuffer

(
    const void* Contents,
    const FRHIUniformBufferLayout & Lay...,
    EUniformBufferUsage Usage
)

FlushType: Thread safe, but varies depending on the RHI.

Public function Virtual

FUnorderedAc ...

 

RHICreateUnorderedAccessView

(
    FVertexBufferRHIParamRef VertexBuff...,
    uint8 Format
)

FlushType: Wait RHI Thread.

Public function Virtual

FUnorderedAc ...

 

RHICreateUnorderedAccessView

(
    FIndexBufferRHIParamRef IndexBuffer,
    uint8 Format
)

FlushType: Wait RHI Thread.

Public function Virtual

FUnorderedAc ...

 

RHICreateUnorderedAccessView

(
    FStructuredBufferRHIParamRef Struct...,
    bool bUseUAVCounter,
    bool bAppendBuffer
)

FlushType: Wait RHI Thread.

Public function Virtual

FUnorderedAc ...

 

RHICreateUnorderedAccessView

(
    FTextureRHIParamRef Texture,
    uint32 MipLevel
)

FlushType: Wait RHI Thread.

Public function Virtual

FUnorderedAc ...

 

RHICreateUnorderedAccessView_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FTextureRHIParamRef Texture,
    uint32 MipLevel
)

Public function Virtual

FUnorderedAc ...

 

RHICreateUnorderedAccessView_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FVertexBufferRHIParamRef VertexBuff...,
    uint8 Format
)

Public function Virtual

FUnorderedAc ...

 

RHICreateUnorderedAccessView_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FStructuredBufferRHIParamRef Struct...,
    bool bUseUAVCounter,
    bool bAppendBuffer
)

Public function Virtual

FVertexBuffe ...

 

RHICreateVertexBuffer

(
    uint32 Size,
    uint32 InUsage,
    FRHIResourceCreateInfo & CreateInfo
)

FlushType: Wait RHI Thread.

Public function Virtual

FVertexDecla ...

 

RHICreateVertexDeclaration

(
    const FVertexDeclarationElementList ...
)

FlushType: Wait RHI Thread.

Public function Virtual

FVertexShade ...

 

RHICreateVertexShader

(
    const TArray < uint8 >& Code
)

FlushType: Wait RHI Thread.

Public function Virtual

FViewportRHI ...

 

RHICreateViewport

(
    void* WindowHandle,
    uint32 SizeX,
    uint32 SizeY,
    bool bIsFullscreen,
    EPixelFormat PreferredPixelFormat
)

============================================================================= The following RHI functions must be called from the main thread.

Public function Virtual

void

 

RHIExecuteCommandList

(
    FRHICommandList * CmdList
)

FlushType: Wait RHI Thread.

Public function Virtual

ETextureReal ...

 

RHIFinalizeAsyncReallocateTexture2D

(
    FTexture2DRHIParamRef Texture2D,
    bool bBlockUntilCompleted
)

FlushType: Wait RHI Thread.

Public function Virtual

void

 

RHIFlushResources()

Flush driver resources.

Public function Virtual

void

 

RHIGenerateMips

(
    FTextureRHIParamRef Texture
)

FlushType: Flush Immediate (NP: this should be queued on the command list for RHI thread execution, not flushed)

Public function Virtual

bool

 

RHIGetAvailableResolutions

(
    FScreenResolutionArray & Resolution...,
    bool bIgnoreRefreshRate
)

FlushType: Thread safe.

Public function Virtual

IRHICommandC ...

 

RHIGetCommandContextContainer

(
    int32 Index,
    int32 Num
)

FlushType: Thread safe.

Public function Virtual

IRHIComputeC ...

 

RHIGetDefaultAsyncComputeContext()

FlushType: Thread safe.

Public function Virtual

IRHICommandC ...

 

RHIGetDefaultContext()

FlushType: Thread safe.

Public function Virtual

uint32

 

RHIGetGPUFrameCycles()

FlushType: Thread safe.

Public function Virtual

void *

 

RHIGetNativeDevice()

FlushType: Flush RHI Thread.

Public function Virtual

bool

 

RHIGetRenderQueryResult

(
    FRenderQueryRHIParamRef RenderQuery,
    uint64 & OutResult,
    bool bWait
)

CAUTION: Even though this is marked as threadsafe, it is only valid to call from the render thread.

Public function Virtual

void

 

RHIGetResourceInfo

(
    FTextureRHIParamRef Ref,
    FRHIResourceInfo & OutInfo
)

FlushType: Thread safe.

Public function Virtual

void

 

RHIGetSupportedResolution

(
    uint32 & Width,
    uint32 & Height
)

FlushType: Thread safe.

Public function Virtual

void

 

RHIGetTextureMemoryStats

(
    FTextureMemoryStats & OutStats
)

Texture allocator support.

Public function Virtual

bool

 

RHIGetTextureMemoryVisualizeData

(
    FColor * TextureData,
    int32 SizeX,
    int32 SizeY,
    int32 Pitch,
    int32 PixelSize
)

FlushType: Flush Immediate.

Public function Virtual

FTexture2DRH ...

 

RHIGetViewportBackBuffer

(
    FViewportRHIParamRef Viewport
)

With RHI thread, this is the current backbuffer from the perspective of the render thread.

Public function Virtual

bool

 

RHIIsRenderingSuspended()

FlushType: Flush Immediate.

Public function Virtual

void *

 

RHILockIndexBuffer

(
    FIndexBufferRHIParamRef IndexBuffer,
    uint32 Offset,
    uint32 Size,
    EResourceLockMode LockMode
)

FlushType: Flush RHI Thread.

Public function Virtual

void *

 

RHILockStagingBuffer

(
    FStagingBufferRHIParamRef StagingBu...,
    uint32 Offset,
    uint32 SizeRHI
)

Lock a staging buffer to read contents on the CPU that were written by the GPU, without having to stall.

Public function Virtual

void *

 

RHILockStructuredBuffer

(
    FStructuredBufferRHIParamRef Struct...,
    uint32 Offset,
    uint32 SizeRHI,
    EResourceLockMode LockMode
)

FlushType: Flush RHI Thread.

Public function Virtual

void *

 

RHILockTexture2D

(
    FTexture2DRHIParamRef Texture,
    uint32 MipIndex,
    EResourceLockMode LockMode,
    uint32 & DestStride,
    bool bLockWithinMiptail
)

FlushType: Flush RHI Thread.

Public function Virtual

void *

 

RHILockTexture2DArray

(
    FTexture2DArrayRHIParamRef Texture,
    uint32 TextureIndex,
    uint32 MipIndex,
    EResourceLockMode LockMode,
    uint32 & DestStride,
    bool bLockWithinMiptail
)

FlushType: Flush RHI Thread.

Public function Virtual

void *

 

RHILockTextureCubeFace

(
    FTextureCubeRHIParamRef Texture,
    uint32 FaceIndex,
    uint32 ArrayIndex,
    uint32 MipIndex,
    EResourceLockMode LockMode,
    uint32 & DestStride,
    bool bLockWithinMiptail
)

FlushType: Flush RHI Thread.

Public function Virtual

void *

 

RHILockVertexBuffer

(
    FVertexBufferRHIParamRef VertexBuff...,
    uint32 Offset,
    uint32 SizeRHI,
    EResourceLockMode LockMode
)

FlushType: Flush RHI Thread.

Public function Virtual

void

 

RHIMapStagingSurface

(
    FTextureRHIParamRef Texture,
    void*& OutData,
    int32 & OutWidth,
    int32 & OutHeight
)

FlushType: Flush Immediate (seems wrong)

Public function Virtual

void

 

RHIRead3DSurfaceFloatData

(
    FTextureRHIParamRef Texture,
    FIntRect Rect,
    FIntPoint ZMinMax,
    TArray < FFloat16Color >& OutData
)

FlushType: Flush Immediate (seems wrong)

Public function Virtual

void

 

RHIReadSurfaceData

(
    FTextureRHIParamRef Texture,
    FIntRect Rect,
    TArray < FColor >& OutData,
    FReadSurfaceDataFlags InFlags
)

FlushType: Flush Immediate (seems wrong)

Public function Virtual

void

 

RHIReadSurfaceFloatData

(
    FTextureRHIParamRef Texture,
    FIntRect Rect,
    TArray < FFloat16Color >& OutData,
    ECubeFace CubeFace,
    int32 ArrayIndex,
    int32 MipIndex
)

FlushType: Flush Immediate (seems wrong)

Public function Virtual

void

 

RHIReleaseThreadOwnership()

FlushType: Flush RHI Thread.

Public function Virtual

void

 

RHIResizeViewport

(
    FViewportRHIParamRef Viewport,
    uint32 SizeX,
    uint32 SizeY,
    bool bIsFullscreen
)

Must be called from the main thread. FlushType: Thread safe

Public function Virtual

void

 

RHIResizeViewport

(
    FViewportRHIParamRef Viewport,
    uint32 SizeX,
    uint32 SizeY,
    bool bIsFullscreen,
    EPixelFormat PreferredPixelFormat
)

Public function Virtual

void

 

RHIResumeRendering()

FlushType: Thread safe.

Public function Virtual

void

 

RHISetStreamOutTargets

(
    uint32 NumTargets,
    const FVertexBufferRHIParamRef *...,
    const uint32 * Offsets
)

Sets stream output targets, for use with a geometry shader created with RHICreateGeometryShaderWithStreamOutput.

Public function Virtual

void

 

RHISubmitCommandsAndFlushGPU()

Kicks the current frame and makes sure GPU is actively working on them FlushType: Flush Immediate (copied from RHIBlockUntilGPUIdle)

Public function Virtual

void

 

RHISuspendRendering()

Operations to suspend title rendering and yield control to the system FlushType: Thread safe

Public function Virtual

void

 

RHITick

(
    float DeltaTime
)

Must be called from the main thread. FlushType: Thread safe

Public function Virtual

void

 

RHIUnlockIndexBuffer

(
    FIndexBufferRHIParamRef IndexBuffer
)

FlushType: Flush RHI Thread.

Public function Virtual

void

 

RHIUnlockStagingBuffer

(
    FStagingBufferRHIParamRef StagingBu...
)

Unlock a staging buffer previously locked with RHILockStagingBuffer.

Public function Virtual

void

 

RHIUnlockStructuredBuffer

(
    FStructuredBufferRHIParamRef Struct...
)

FlushType: Flush RHI Thread.

Public function Virtual

void

 

RHIUnlockTexture2D

(
    FTexture2DRHIParamRef Texture,
    uint32 MipIndex,
    bool bLockWithinMiptail
)

FlushType: Flush RHI Thread.

Public function Virtual

void

 

RHIUnlockTexture2DArray

(
    FTexture2DArrayRHIParamRef Texture,
    uint32 TextureIndex,
    uint32 MipIndex,
    bool bLockWithinMiptail
)

FlushType: Flush RHI Thread.

Public function Virtual

void

 

RHIUnlockTextureCubeFace

(
    FTextureCubeRHIParamRef Texture,
    uint32 FaceIndex,
    uint32 ArrayIndex,
    uint32 MipIndex,
    bool bLockWithinMiptail
)

FlushType: Flush RHI Thread.

Public function Virtual

void

 

RHIUnlockVertexBuffer

(
    FVertexBufferRHIParamRef VertexBuff...
)

FlushType: Flush RHI Thread.

Public function Virtual

void

 

RHIUnmapStagingSurface

(
    FTextureRHIParamRef Texture
)

FlushType: Flush Immediate (seems wrong)

Public function Virtual

void

 

RHIUpdateTexture2D

(
    FTexture2DRHIParamRef Texture,
    uint32 MipIndex,
    const FUpdateTextureRegion2D & Upda...,
    uint32 SourcePitch,
    const uint8 * SourceData
)

FlushType: Flush RHI Thread.

Public function Virtual

void

 

RHIUpdateTexture3D

(
    FTexture3DRHIParamRef Texture,
    uint32 MipIndex,
    const FUpdateTextureRegion3D & Upda...,
    uint32 SourceRowPitch,
    uint32 SourceDepthPitch,
    const uint8 * SourceData
)

FlushType: Flush RHI Thread.

Public function Virtual

void

 

RHIVirtualTextureSetFirstMipInMemory

(
    FTexture2DRHIParamRef Texture,
    uint32 FirstMip
)

FlushType: Wait RHI Thread.

Public function Virtual

void

 

RHIVirtualTextureSetFirstMipVisible

(
    FTexture2DRHIParamRef Texture,
    uint32 FirstMip
)

FlushType: Wait RHI Thread.

Public function Virtual

void

 

Shutdown()

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).

Public function Virtual

void

 

UnlockTexture2D_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FTexture2DRHIParamRef Texture,
    uint32 MipIndex,
    bool bLockWithinMiptail,
    bool bNeedsDefaultRHIFlush
)

Public function Virtual

void

 

UpdateTexture2D_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FTexture2DRHIParamRef Texture,
    uint32 MipIndex,
    const FUpdateTextureRegion2D & Upda...,
    uint32 SourcePitch,
    const uint8 * SourceData
)

Public function Virtual

void

 

UpdateTexture3D_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FTexture3DRHIParamRef Texture,
    uint32 MipIndex,
    const FUpdateTextureRegion3D & Upda...,
    uint32 SourceRowPitch,
    uint32 SourceDepthPitch,
    const uint8 * SourceData
)

Constants

Name

Description

HMDVulkanExtensions

References

Module

VulkanRHI

Header

Runtime/VulkanRHI/Public/VulkanDynamicRHI.h