FOpenGLDynamicRHI

Inheritance Hierarchy

Syntax

class FOpenGLDynamicRHI :
    public FDynamicRHI ,
    public IRHICommandContextPSOFallback

Remarks

The interface which is implemented by the dynamically bound RHI.

Constructors

Name Description

Public function

FOpenGLDynamicRHI()

Initialization constructor.

Destructors

Name Description

Public function

~FOpenGLDynamicRHI()

Destructor

Functions

Name Description

Public function

void

 

BeginRenderQuery_OnThisThread

(
    FOpenGLRenderQuery * Query
)

Public function

void

 

CachedBindArrayBuffer

(
    FOpenGLContextState & ContextState,
    GLuint Buffer
)

Public function

void

 

CachedBindElementArrayBuffer

(
    FOpenGLContextState & ContextState,
    GLuint Buffer
)

Public function

void

 

CachedBindPixelUnpackBuffer

(
    FOpenGLContextState & ContextState,
    GLuint Buffer
)

Public function

void

 

CachedBindUniformBuffer

(
    FOpenGLContextState & ContextState,
    GLuint Buffer
)

Public function

void

 

CachedSetupTextureStage

(
    FOpenGLContextState & ContextState,
    GLint TextureIndex,
    GLenum Target,
    GLuint Resource,
    GLint BaseMip,
    GLint NumMips
)

Set a resource on texture target of a specific real OpenGL stage.

Public function

void

 

CachedSetupTextureStageInner

(
    FOpenGLContextState & ContextState,
    GLint TextureIndex,
    GLenum Target,
    GLuint Resource,
    GLint BaseMip,
    GLint NumMips
)

Public function

void

 

CachedSetupUAVStage

(
    FOpenGLContextState & ContextState,
    GLint UAVIndex,
    GLenum Format,
    GLuint Resource
)

Public function

void

 

Cleanup()

Public function

FRHITexture ...

 

CreateOpenGLRHITextureOnly

(
    const uint32 SizeX,
    const uint32 SizeY,
    const bool bCubeTexture,
    const bool bArrayTexture,
    const bool bIsExternal,
    uint8 & Format,
    uint32 & NumMips,
    uint32 & NumSamples,
    const uint32 ArraySize,
    uint32 & Flags,
    const FClearValueBinding & InClearV...,
    FResourceBulkDataInterface * Bu...
)

Public function

FRHITexture ...

 

CreateOpenGLTexture

(
    uint32 SizeX,
    uint32 SizeY,
    bool CubeTexture,
    bool ArrayTexture,
    bool bIsExternal,
    uint8 Format,
    uint32 NumMips,
    uint32 NumSamples,
    uint32 ArraySize,
    uint32 Flags,
    const FClearValueBinding & InClearV...,
    FResourceBulkDataInterface * Bu...
)

Public function

void

 

EndRenderQuery_OnThisThread

(
    FOpenGLRenderQuery * Query
)

Public function

FOpenGLConte ...

 

GetContextStateForCurrentContext

(
    bool bAssertIfInvalid
)

Public function

FOpenGLGPUPr ...

 

GetGPUProfilingData()

Public function

void *

 

GetOpenGLCurrentContextHandle()

Public function Const

FOpenGLSampl ...

 

GetPointSamplerState()

Public function

void

 

GetRenderQueryResult_OnThisThread

(
    FOpenGLRenderQuery * Query,
    bool bWait
)

Public function

void

 

InitializeGLTexture

(
    FRHITexture * Texture,
    uint32 SizeX,
    const uint32 SizeY,
    const bool bCubeTexture,
    const bool bArrayTexture,
    const bool bIsExternal,
    const uint8 Format,
    const uint32 NumMips,
    const uint32 NumSamples,
    const uint32 ArraySize,
    const uint32 Flags,
    const FClearValueBinding & InClearV...,
    FResourceBulkDataInterface * Bu...
)

Public function

void

 

InternalSetSamplerStates

(
    GLint TextureIndex,
    FOpenGLSamplerState * SamplerSt...
)

Public function

void

 

InternalSetShaderTexture

(
    FOpenGLTextureBase * Texture,
    FOpenGLShaderResourceView * SRV,
    GLint TextureIndex,
    GLenum Target,
    GLuint Resource,
    int NumMips,
    int LimitMip
)

Remember what RHI user wants set on a specific OpenGL texture stage, translating from Stage and TextureIndex for stage pair.

Public function

void

 

InternalSetShaderUAV

(
    GLint UAVIndex,
    GLenum Format,
    GLuint Resource
)

Public function

void

 

InvalidateQueries()

Inform all queries about the need to recreate themselves after OpenGL context they're in gets deleted.

Public function

void

 

InvalidateTextureResourceInCache

(
    GLuint Resource
)

Public function

void

 

InvalidateUAVResourceInCache

(
    GLuint Resource
)

Public function Const

bool

 

IsUniformBufferBound

(
    FOpenGLContextState & ContextState,
    GLuint Buffer
)

Public function

void

 

OnIndexBufferDeletion

(
    GLuint IndexBufferResource
)

Public function

void

 

OnPixelBufferDeletion

(
    GLuint PixelBufferResource
)

Public function

void

 

OnProgramDeletion

(
    GLint ProgramResource
)

Public function

void

 

OnUniformBufferDeletion

(
    GLuint UniformBufferResource,
    uint32 AllocatedSize,
    bool bStreamDraw
)

Public function

void

 

OnVertexBufferDeletion

(
    GLuint VertexBufferResource
)

Public function

void

 

PurgeFramebufferFromCaches

(
    GLuint Framebuffer
)

Public function

void

 

RegisterQuery

(
    FOpenGLRenderQuery * Query
)

Add query to Queries list upon its creation.

Public function Static

TEnableIf <&#...

 

ResourceCast

(
    TRHIType* Resource
)

Public function Static

TEnableIf < T ...

 

ResourceCast

(
    TRHIType* Resource
)

If using a Proxy object return the contained GL object rather than the proxy itself.

Public function Static

TEnableIf <&#...

 

ResourceCast_Unfenced

(
    TRHIType* Resource
)

Public function Virtual

void

 

RHIAliasTextureResources

(
    FTextureRHIParamRef DestTexture,
    FTextureRHIParamRef SrcTexture
)

Public function

FBoundShader ...

 

RHICreateBoundShaderState_internal

(
    FVertexDeclarationRHIParamRef Verte...,
    FVertexShaderRHIParamRef VertexShad...,
    FHullShaderRHIParamRef HullShaderRH...,
    FDomainShaderRHIParamRef DomainShad...,
    FPixelShaderRHIParamRef PixelShader...,
    FGeometryShaderRHIParamRef Geometry...,
    bool FromPSOFileCache
)

Public function

FBoundShader ...

 

RHICreateBoundShaderState_OnThisThread

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

Public function Virtual

FTexture2DRH ...

 

RHICreateTexture2DArrayFromResource

(
    EPixelFormat Format,
    uint32 SizeX,
    uint32 SizeY,
    uint32 ArraySize,
    uint32 NumMips,
    uint32 NumSamples,
    uint32 NumSamplesTileMem,
    const FClearValueBinding & ClearVal...,
    GLuint Resource,
    uint32 Flags
)

Public function Virtual

FTexture2DRH ...

 

RHICreateTexture2DFromResource

(
    EPixelFormat Format,
    uint32 SizeX,
    uint32 SizeY,
    uint32 NumMips,
    uint32 NumSamples,
    uint32 NumSamplesTileMem,
    const FClearValueBinding & ClearVal...,
    GLuint Resource,
    uint32 Flags
)

Public function Virtual

FTextureCube ...

 

RHICreateTextureCubeFromResource

(
    EPixelFormat Format,
    uint32 Size,
    bool bArray,
    uint32 ArraySize,
    uint32 NumMips,
    uint32 NumSamples,
    uint32 NumSamplesTileMem,
    const FClearValueBinding & ClearVal...,
    GLuint Resource,
    uint32 Flags
)

Public function

void

 

SetCustomPresent

(
    FRHICustomPresent * InCustomPre...
)

Public function

void

 

SetResourcesFromTables

(
    const ShaderType*__restrict Sh...
)

Public function

void

 

UnregisterQuery

(
    FOpenGLRenderQuery * Query
)

Remove query from Queries list upon its deletion.

Public function

void

 

UpdateSRV

(
    FOpenGLShaderResourceView * SRV
)

Overridden from FDynamicRHI

Name Description

Public function Virtual

FTexture2DRH ...

 

AsyncReallocateTexture2D_RenderThread

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

Public function Virtual

ETextureReal ...

 

CancelAsyncReallocateTexture2D_RenderThread

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

Public function Virtual

FComputeShad ...

 

CreateComputeShader_RenderThread

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

Public function Virtual

FGeometrySha ...

 

CreateGeometryShader_RenderThread

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

Public function Virtual

FGeometrySha ...

 

CreateGeometryShaderWithStreamOutput_RenderThread

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

Public function Virtual

FHullShaderR ...

 

CreateHullShader_RenderThread

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

Public function Virtual

FIndexBuffer ...

 

CreateIndexBuffer_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    uint32 Stride,
    uint32 Size,
    uint32 InUsage,
    FRHIResourceCreateInfo & CreateInfo
)

Public function Virtual

FPixelShader ...

 

CreatePixelShader_RenderThread

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

Public function Virtual

FShaderResou ...

 

CreateShaderResourceView_RenderThread

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

Public function Virtual

FShaderResou ...

 

CreateShaderResourceView_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FIndexBufferRHIParamRef Buffer
)

Public function Virtual

FStructuredB ...

 

CreateStructuredBuffer_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    uint32 Stride,
    uint32 Size,
    uint32 InUsage,
    FRHIResourceCreateInfo & CreateInfo
)

Public function Virtual

FVertexBuffe ...

 

CreateVertexBuffer_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    uint32 Size,
    uint32 InUsage,
    FRHIResourceCreateInfo & CreateInfo
)

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

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

Public function Virtual

void *

 

LockStagingBuffer_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    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 *

 

LockTexture2D_RenderThread

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

Public function Virtual

void

 

PostInit()

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

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

(
    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

ETextureReal ...

 

RHICancelAsyncReallocateTexture2D

(
    FTexture2DRHIParamRef Texture2D,
    bool bBlockUntilCompleted
)

Cancels an async reallocation for the specified texture.

Public function Virtual

uint32

 

RHIComputeMemorySize

(
    FTextureRHIParamRef TextureRHI
)

Computes the size in memory required by a given texture.

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

FComputeShad ...

 

RHICreateComputeShader

(
    FRHIShaderLibraryParamRef Library,
    FSHAHash Hash
)

FlushType: Wait RHI Thread.

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

FDomainShade ...

 

RHICreateDomainShader

(
    FRHIShaderLibraryParamRef Library,
    FSHAHash Hash
)

FlushType: Wait RHI Thread.

Public function Virtual

FGeometrySha ...

 

RHICreateGeometryShader

(
    const TArray < uint8 >& Code
)

FlushType: Wait RHI Thread.

Public function Virtual

FGeometrySha ...

 

RHICreateGeometryShader

(
    FRHIShaderLibraryParamRef Library,
    FSHAHash Hash
)

FlushType: Wait RHI Thread.

Public function Virtual

FGeometrySha ...

 

RHICreateGeometryShaderWithStreamOutput

(
    const FStreamOutElementList & Eleme...,
    uint32 NumStrides,
    const uint32 * Strides,
    int32 RasterizedStream,
    FRHIShaderLibraryParamRef Library,
    FSHAHash Hash
)

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

FHullShaderR ...

 

RHICreateHullShader

(
    const TArray < uint8 >& Code
)

FlushType: Wait RHI Thread.

Public function Virtual

FHullShaderR ...

 

RHICreateHullShader

(
    FRHIShaderLibraryParamRef Library,
    FSHAHash Hash
)

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

FPixelShader ...

 

RHICreatePixelShader

(
    FRHIShaderLibraryParamRef Library,
    FSHAHash Hash
)

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

(
    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

(
    FTexture3DRHIParamRef Texture3DRHI,
    uint8 MipLevel
)

FlushType: Wait RHI Thread.

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView_RenderThread

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

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FIndexBufferRHIParamRef Buffer
)

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

FShaderResou ...

 

RHICreateShaderResourceView_RenderThread

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

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView_RenderThread

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

Public function Virtual

FShaderResou ...

 

RHICreateShaderResourceView_RenderThread

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

Public function Virtual

FStagingBuff ...

 

RHICreateStagingBuffer()

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
)

Creates a 2D RHI texture resource

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
)

FlushType: Wait RHI Thread.

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

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

Creates a 2D RHI texture external resource

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,
    EUniformBufferValidation Validation
)

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

Public function Virtual

FUnorderedAc ...

 

RHICreateUnorderedAccessView

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

FlushType: Wait RHI Thread.

Public function Virtual

FUnorderedAc ...

 

RHICreateUnorderedAccessView

(
    FIndexBufferRHIParamRef IndexBuffer,
    uint8 Format
)

FlushType: Wait RHI Thread.

Public function Virtual

FUnorderedAc ...

 

RHICreateUnorderedAccessView

(
    FVertexBufferRHIParamRef VertexBuff...,
    uint8 Format
)

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...,
    FStructuredBufferRHIParamRef Struct...,
    bool bUseUAVCounter,
    bool bAppendBuffer
)

Public function Virtual

FUnorderedAc ...

 

RHICreateUnorderedAccessView_RenderThread

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

Public function Virtual

FUnorderedAc ...

 

RHICreateUnorderedAccessView_RenderThread

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

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

FVertexShade ...

 

RHICreateVertexShader

(
    FRHIShaderLibraryParamRef Library,
    FSHAHash Hash
)

FlushType: Wait RHI Thread.

Public function Virtual

FViewportRHI ...

 

RHICreateViewport

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

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

Public function Virtual

void

 

RHIExecuteCommandList

(
    FRHICommandList * CmdList
)

FlushType: Wait RHI Thread.

Public function Virtual

ETextureReal ...

 

RHIFinalizeAsyncReallocateTexture2D

(
    FTexture2DRHIParamRef Texture2D,
    bool bBlockUntilCompleted
)

Returns the status of an ongoing or completed texture reallocation: TexRealloc_Succeeded - The texture is ok, reallocation is not in progress.

Public function Virtual

void

 

RHIFlushResources()

Flush driver resources.

Public function Virtual

void

 

RHIGenerateMips

(
    FTextureRHIParamRef Texture
)

Generates mip maps for the surface.

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

IRHICommandC ...

 

RHIGetDefaultContext()

FlushType: Thread safe.

Public function Virtual

uint32

 

RHIGetGPUFrameCycles()

Returns the total GPU time taken to render the last frame.

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
)

Retrieves texture memory stats. Unsupported with this allocator.

Public function Virtual

bool

 

RHIGetTextureMemoryVisualizeData

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

Fills a texture with to visualize the texture pool memory.

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

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 *

 

RHILockTextureCubeFace_RenderThread

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

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

 

RHIPerFrameRHIFlushComplete()

FlushType: called from render thread when RHI thread is flushed.

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

 

RHIReadSurfaceData

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

Default fallback; will not work for non-8-bit surfaces and it's extremely slow.

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

 

RHISetStreamOutTargets

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

FlushType: Flush Immediate (seems wrong)

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

 

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

 

RHIUnlockTextureCubeFace_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FTextureCubeRHIParamRef Texture,
    uint32 FaceIndex,
    uint32 ArrayIndex,
    uint32 MipIndex,
    bool bLockWithinMiptail
)

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

 

RHIUpdateUniformBuffer

(
    FUniformBufferRHIParamRef UniformBu...,
    const void* Contents
)

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

 

UnlockStagingBuffer_RenderThread

(
    FRHICommandListImmediate & RHICmdLi...,
    FStagingBufferRHIParamRef StagingBu...
)

Unlock a staging buffer previously locked with LockStagingBuffer_RenderThread.

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
)

Overridden from IRHICommandContextPSOFallback

Name Description

Public function Virtual

void

 

RHIEnableDepthBoundsTest

(
    bool bEnable
)

Public function Virtual

void

 

RHISetBlendState

(
    FBlendStateRHIParamRef NewState,
    const FLinearColor & BlendFactor
)

Public function Virtual

void

 

RHISetBoundShaderState

(
    FBoundShaderStateRHIParamRef BoundS...
)

Set bound shader state. This will set the vertex decl/shader, and pixel shader

Public function Virtual

void

 

RHISetDepthStencilState

(
    FDepthStencilStateRHIParamRef NewSt...,
    uint32 StencilRef
)

Public function Virtual

void

 

RHISetRasterizerState

(
    FRasterizerStateRHIParamRef NewStat...
)

Overridden from IRHICommandContext

Name Description

Public function Virtual

void

 

RHIAutomaticCacheFlushAfterComputeShader

(
    bool bEnable
)

Public function Virtual

void

 

RHIBeginDrawIndexedPrimitiveUP

(
    uint32 NumPrimitives,
    uint32 NumVertices,
    uint32 VertexDataStride,
    void*& OutVertexData,
    uint32 MinVertexIndex,
    uint32 NumIndices,
    uint32 IndexDataStride,
    void*& OutIndexData
)

Preallocate memory or get a direct command stream pointer to fill up for immediate rendering .

Public function Virtual

void

 

RHIBeginDrawingViewport

(
    FViewportRHIParamRef Viewport,
    FTextureRHIParamRef RenderTargetRHI
)

This method is queued with an RHIThread, otherwise it will flush after it is queued; without an RHI thread there is no benefit to queuing this frame advance commands.

Public function Virtual

void

 

RHIBeginDrawPrimitiveUP

(
    uint32 NumPrimitives,
    uint32 NumVertices,
    uint32 VertexDataStride,
    void*& OutVertexData
)

Preallocate memory or get a direct command stream pointer to fill up for immediate rendering .

Public function Virtual

void

 

RHIBeginFrame()

This method is queued with an RHIThread, otherwise it will flush after it is queued; without an RHI thread there is no benefit to queuing this frame advance commands.

Public function Virtual

void

 

RHIBeginRenderPass

(
    const FRHIRenderPassInfo & InInfo,
    const TCHAR * InName
)

Public function Virtual

void

 

RHIBeginRenderQuery

(
    FRenderQueryRHIParamRef RenderQuery
)

Public function Virtual

void

 

RHIBeginScene()

This method is queued with an RHIThread, otherwise it will flush after it is queued; without an RHI thread there is no benefit to queuing this frame advance commands.

Public function Virtual

void

 

RHIClearTinyUAV

(
    FUnorderedAccessViewRHIParamRef Uno...,
    const uint32 * Values
)

Clears a UAV to the multi-component value provided.

Public function Virtual

void

 

RHICopyToResolveTarget

(
    FTextureRHIParamRef SourceTexture,
    FTextureRHIParamRef DestTexture,
    const FResolveParams & ResolveParam...
)

Resolves from one texture to another.

Public function Virtual

void

 

RHIDiscardRenderTargets

(
    bool Depth,
    bool Stencil,
    uint32 ColorBitMask
)

Not all RHIs need this (Mobile specific)

Public function Virtual

void

 

RHIDrawIndexedIndirect

(
    FIndexBufferRHIParamRef IndexBuffer...,
    FStructuredBufferRHIParamRef Argume...,
    int32 DrawArgumentsIndex,
    uint32 NumInstances
)

Public function Virtual

void

 

RHIDrawIndexedPrimitive

(
    FIndexBufferRHIParamRef IndexBuffer,
    int32 BaseVertexIndex,
    uint32 FirstInstance,
    uint32 NumVertices,
    uint32 StartIndex,
    uint32 NumPrimitives,
    uint32 NumInstances
)

Public function Virtual

void

 

RHIDrawIndexedPrimitiveIndirect

(
    FIndexBufferRHIParamRef IndexBuffer,
    FVertexBufferRHIParamRef ArgumentBu...,
    uint32 ArgumentOffset
)

Public function Virtual

void

 

RHIDrawPrimitive

(
    uint32 BaseVertexIndex,
    uint32 NumPrimitives,
    uint32 NumInstances
)

Public function Virtual

void

 

RHIDrawPrimitiveIndirect

(
    FVertexBufferRHIParamRef ArgumentBu...,
    uint32 ArgumentOffset
)

Public function Virtual

void

 

RHIEndDrawIndexedPrimitiveUP()

Draw a primitive using the vertex and index data populated since RHIBeginDrawIndexedPrimitiveUP and clean up any memory as needed

Public function Virtual

void

 

RHIEndDrawingViewport

(
    FViewportRHIParamRef Viewport,
    bool bPresent,
    bool bLockToVsync
)

This method is queued with an RHIThread, otherwise it will flush after it is queued; without an RHI thread there is no benefit to queuing this frame advance commands.

Public function Virtual

void

 

RHIEndDrawPrimitiveUP()

Draw a primitive using the vertex data populated since RHIBeginDrawPrimitiveUP and clean up any memory as needed

Public function Virtual

void

 

RHIEndFrame()

This method is queued with an RHIThread, otherwise it will flush after it is queued; without an RHI thread there is no benefit to queuing this frame advance commands.

Public function Virtual

void

 

RHIEndRenderPass()

Public function Virtual

void

 

RHIEndRenderQuery

(
    FRenderQueryRHIParamRef RenderQuery
)

Public function Virtual

void

 

RHIEndScene()

This method is queued with an RHIThread, otherwise it will flush after it is queued; without an RHI thread there is no benefit to queuing this frame advance commands.

Public function Virtual

void

 

RHIFlushComputeShaderCache()

Public function Virtual

void

 

RHIPollOcclusionQueries()

Used for OpenGL to check and see if any occlusion queries can be read back on the RHI thread. If they aren't ready when we need them, then we end up stalling.

Public function Virtual

void

 

RHISetBlendFactor

(
    const FLinearColor & BlendFactor
)

Public function Virtual

void

 

RHISetDepthBounds

(
    float MinDepth,
    float MaxDepth
)

Sets Depth Bounds range with the given min/max depth.

Public function Virtual

void

 

RHISetGraphicsPipelineState

This will set most relevant pipeline state.

Public function Virtual

void

 

RHISetMultipleViewports

(
    uint32 Count,
    const FViewportBounds * Data
)

Useful when used with geometry shader (emit polygons to different viewports), otherwise SetViewPort() is simpler

Public function Virtual

void

 

RHISetRenderTargets

(
    uint32 NumSimultaneousRenderTargets,
    const FRHIRenderTargetView * Ne...,
    const FRHIDepthRenderTargetView ...,
    uint32 NumUAVs,
    const FUnorderedAccessViewRHIParamR ...
)

Public function Virtual

void

 

RHISetRenderTargetsAndClear

(
    const FRHISetRenderTargetsInfo & Re...
)

Public function Virtual

void

 

RHISetScissorRect

(
    bool bEnable,
    uint32 MinX,
    uint32 MinY,
    uint32 MaxX,
    uint32 MaxY
)

Public function Virtual

void

 

RHISetShaderParameter

(
    FPixelShaderRHIParamRef PixelShader,
    uint32 BufferIndex,
    uint32 BaseIndex,
    uint32 NumBytes,
    const void* NewValue
)

Public function Virtual

void

 

RHISetShaderParameter

(
    FVertexShaderRHIParamRef VertexShad...,
    uint32 BufferIndex,
    uint32 BaseIndex,
    uint32 NumBytes,
    const void* NewValue
)

Public function Virtual

void

 

RHISetShaderParameter

(
    FHullShaderRHIParamRef HullShader,
    uint32 BufferIndex,
    uint32 BaseIndex,
    uint32 NumBytes,
    const void* NewValue
)

Public function Virtual

void

 

RHISetShaderParameter

(
    FGeometryShaderRHIParamRef Geometry...,
    uint32 BufferIndex,
    uint32 BaseIndex,
    uint32 NumBytes,
    const void* NewValue
)

Public function Virtual

void

 

RHISetShaderParameter

(
    FDomainShaderRHIParamRef DomainShad...,
    uint32 BufferIndex,
    uint32 BaseIndex,
    uint32 NumBytes,
    const void* NewValue
)

Public function Virtual

void

 

RHISetShaderResourceViewParameter

(
    FHullShaderRHIParamRef HullShader,
    uint32 SamplerIndex,
    FShaderResourceViewRHIParamRef SRV
)

Public function Virtual

void

 

RHISetShaderResourceViewParameter

(
    FGeometryShaderRHIParamRef Geometry...,
    uint32 SamplerIndex,
    FShaderResourceViewRHIParamRef SRV
)

Public function Virtual

void

 

RHISetShaderResourceViewParameter

(
    FPixelShaderRHIParamRef PixelShader,
    uint32 SamplerIndex,
    FShaderResourceViewRHIParamRef SRV
)

Public function Virtual

void

 

RHISetShaderResourceViewParameter

(
    FVertexShaderRHIParamRef VertexShad...,
    uint32 SamplerIndex,
    FShaderResourceViewRHIParamRef SRV
)

Public function Virtual

void

 

RHISetShaderResourceViewParameter

(
    FDomainShaderRHIParamRef DomainShad...,
    uint32 SamplerIndex,
    FShaderResourceViewRHIParamRef SRV
)

Public function Virtual

void

 

RHISetShaderSampler

(
    FHullShaderRHIParamRef HullShader,
    uint32 SamplerIndex,
    FSamplerStateRHIParamRef NewState
)

Sets sampler state.

Public function Virtual

void

 

RHISetShaderSampler

(
    FPixelShaderRHIParamRef PixelShader,
    uint32 SamplerIndex,
    FSamplerStateRHIParamRef NewState
)

Sets sampler state.

Public function Virtual

void

 

RHISetShaderSampler

(
    FDomainShaderRHIParamRef DomainShad...,
    uint32 SamplerIndex,
    FSamplerStateRHIParamRef NewState
)

Sets sampler state.

Public function Virtual

void

 

RHISetShaderSampler

(
    FVertexShaderRHIParamRef VertexShad...,
    uint32 SamplerIndex,
    FSamplerStateRHIParamRef NewState
)

Sets sampler state.

Public function Virtual

void

 

RHISetShaderSampler

(
    FGeometryShaderRHIParamRef Geometry...,
    uint32 SamplerIndex,
    FSamplerStateRHIParamRef NewState
)

Sets sampler state.

Public function Virtual

void

 

RHISetShaderTexture

(
    FVertexShaderRHIParamRef VertexShad...,
    uint32 TextureIndex,
    FTextureRHIParamRef NewTexture
)

Set the shader resource view of a surface.

Public function Virtual

void

 

RHISetShaderTexture

(
    FHullShaderRHIParamRef HullShader,
    uint32 TextureIndex,
    FTextureRHIParamRef NewTexture
)

Set the shader resource view of a surface.

Public function Virtual

void

 

RHISetShaderTexture

(
    FDomainShaderRHIParamRef DomainShad...,
    uint32 TextureIndex,
    FTextureRHIParamRef NewTexture
)

Set the shader resource view of a surface.

Public function Virtual

void

 

RHISetShaderTexture

(
    FGeometryShaderRHIParamRef Geometry...,
    uint32 TextureIndex,
    FTextureRHIParamRef NewTexture
)

Set the shader resource view of a surface.

Public function Virtual

void

 

RHISetShaderTexture

(
    FPixelShaderRHIParamRef PixelShader,
    uint32 TextureIndex,
    FTextureRHIParamRef NewTexture
)

Set the shader resource view of a surface.

Public function Virtual

void

 

RHISetShaderUniformBuffer

(
    FPixelShaderRHIParamRef PixelShader,
    uint32 BufferIndex,
    FUniformBufferRHIParamRef Buffer
)

Public function Virtual

void

 

RHISetShaderUniformBuffer

(
    FDomainShaderRHIParamRef DomainShad...,
    uint32 BufferIndex,
    FUniformBufferRHIParamRef Buffer
)

Public function Virtual

void

 

RHISetShaderUniformBuffer

(
    FHullShaderRHIParamRef HullShader,
    uint32 BufferIndex,
    FUniformBufferRHIParamRef Buffer
)

Public function Virtual

void

 

RHISetShaderUniformBuffer

(
    FVertexShaderRHIParamRef VertexShad...,
    uint32 BufferIndex,
    FUniformBufferRHIParamRef Buffer
)

Public function Virtual

void

 

RHISetShaderUniformBuffer

(
    FGeometryShaderRHIParamRef Geometry...,
    uint32 BufferIndex,
    FUniformBufferRHIParamRef Buffer
)

Public function Virtual

void

 

RHISetStencilRef

(
    uint32 StencilRef
)

Public function Virtual

void

 

RHISetStreamSource

(
    uint32 StreamIndex,
    FVertexBufferRHIParamRef VertexBuff...,
    uint32 Offset
)

Public function Virtual

void

 

RHISetViewport

(
    uint32 MinX,
    uint32 MinY,
    float MinZ,
    uint32 MaxX,
    uint32 MaxY,
    float MaxZ
)

Public function Virtual

void

 

RHIUpdateTextureReference

(
    FTextureReferenceRHIParamRef Textur...,
    FTextureRHIParamRef NewTexture
)

Overridden from IRHIComputeContext

Name Description

Public function Virtual

void

 

RHICopyToStagingBuffer

(
    FVertexBufferRHIParamRef SourceBuff...,
    FStagingBufferRHIParamRef Destinati...,
    uint32 InOffset,
    uint32 InNumBytes,
    FGPUFenceRHIParamRef FenceRHI
)

Inline copy.

Public function Virtual

void

 

RHIDispatchComputeShader

(
    uint32 ThreadGroupCountX,
    uint32 ThreadGroupCountY,
    uint32 ThreadGroupCountZ
)

Public function Virtual

void

 

RHIDispatchIndirectComputeShader

(
    FVertexBufferRHIParamRef ArgumentBu...,
    uint32 ArgumentOffset
)

Public function Virtual

void

 

RHIInvalidateCachedState()

Some RHI implementations (OpenGL) cache render state internally Signal to RHI that cached state is no longer valid

Public function Virtual

void

 

RHIPopEvent()

Public function Virtual

void

 

RHIPushEvent

(
    const TCHAR * Name,
    FColor Color
)

Public function Virtual

void

 

RHISetComputeShader

(
    FComputeShaderRHIParamRef ComputeSh...
)

Sets the current compute shader.

Public function Virtual

void

 

RHISetShaderParameter

(
    FComputeShaderRHIParamRef ComputeSh...,
    uint32 BufferIndex,
    uint32 BaseIndex,
    uint32 NumBytes,
    const void* NewValue
)

Public function Virtual

void

 

RHISetShaderResourceViewParameter

(
    FComputeShaderRHIParamRef ComputeSh...,
    uint32 SamplerIndex,
    FShaderResourceViewRHIParamRef SRV
)

Public function Virtual

void

 

RHISetShaderSampler

(
    FComputeShaderRHIParamRef ComputeSh...,
    uint32 SamplerIndex,
    FSamplerStateRHIParamRef NewState
)

Sets sampler state.

Public function Virtual

void

 

RHISetShaderTexture

(
    FComputeShaderRHIParamRef PixelShad...,
    uint32 TextureIndex,
    FTextureRHIParamRef NewTexture
)

Set the shader resource view of a surface.

Public function Virtual

void

 

RHISetShaderUniformBuffer

(
    FComputeShaderRHIParamRef ComputeSh...,
    uint32 BufferIndex,
    FUniformBufferRHIParamRef Buffer
)

Public function Virtual

void

 

RHISetUAVParameter

(
    FComputeShaderRHIParamRef ComputeSh...,
    uint32 UAVIndex,
    FUnorderedAccessViewRHIParamRef UAV,
    uint32 InitialCount
)

Sets a compute shader counted UAV parameter and initial count

Public function Virtual

void

 

RHISetUAVParameter

(
    FComputeShaderRHIParamRef ComputeSh...,
    uint32 UAVIndex,
    FUnorderedAccessViewRHIParamRef UAV
)

Sets a compute shader UAV parameter.

Public function Virtual

void

 

RHISubmitCommandsHint()

Submit the current command buffer to the GPU if possible.

Classes

Name

Description

Public struct

FTextureLockTracker

References

Module

OpenGLDrv

Header

Runtime/OpenGLDrv/Public/OpenGLDrv.h