RenderCore

Classes

Name

Description

Public struct

FBaseShaderResourceTable

Public struct

FCachedUniformBufferDeclaration

Public struct

FCompactFullName

Public class

FCompareShaderPipelineNameTypes

Used to compare two shader pipeline types by name.

Public class

FCompareShaderTypes

Used to compare two shader types by name.

Public class

FCompareVertexFactoryTypes

Used to compare two Vertex Factory types by name.

Public struct

FComputeShaderUtils

All utils for compute shaders.

Public class

FCubeIndexBuffer

Public class

FDeferredCleanupInterface

Deferred cleanup.

Public class

FDeprecatedSerializedPackedNormal

Public struct

FDepthStencilBinding

Render graph information about how to bind a depth-stencil render target.

Public struct

FDynamicAllocReadBuffer

Public class

FEmptyShaderParameters

An empty shader parameter structure ready to be used anywhere.

Public class

FEmptyVertexDeclaration

The empty vertex declaration resource type.

Public struct

FExtraShaderCompilerSettings

Additional compilation settings that can be configured by each FMaterial instance before compilation

Public struct

FFilterVertex

The vertex data used to filter a texture.

Public class

FFilterVertexDeclaration

The filter vertex declaration resource type.

Public struct

FGlobalBoundShaderState

Public struct

FGlobalBoundShaderStateArgs

Public class

FGlobalBoundShaderStateResource

FGlobalBoundShaderState

Public struct

FGlobalBoundShaderStateWorkArea

Public class

FGlobalDynamicIndexBuffer

A system for dynamically allocating GPU memory for indices.

Public class

FGlobalDynamicReadBuffer

A system for dynamically allocating GPU memory for rendering.

Public class

FGlobalDynamicVertexBuffer

A system for dynamically allocating GPU memory for vertices.

Public class

FGlobalShader

FGlobalShader

Public struct

FGlobalShaderBackupData

Container for Backup/RestoreGlobalShaderMap functions.

Public class

FGlobalShaderMapId

Class that encapsulates logic to create a DDC key for the global shader map.

Public struct

FGlobalShaderPermutationParameters

Public class

FGlobalShaderType

A shader meta type for the simplest shaders; shaders which are not material or vertex factory linked.

Public class

FIndexBuffer

An index buffer resource.

Public struct

FInputLatencyTimer

Encapsulates a latency timer that measures the time from when mouse input is read on the gamethread until that frame is fully displayed by the GPU.

Public struct

FMipBiasFade

Functionality for fading in/out texture mip-levels.

Public struct

FMipFadeSettings

Mip fade settings, selectable by chosing a different EMipFadeSettings.

Public class

FNullColorVertexBuffer

A vertex buffer with a single color component.

Public class

FNULLPS

An internal dummy pixel shader to use when the user calls RHISetPixelShader(NULL).

Public struct

FPackedArrayInfo

Public struct

FPackedNormal

A normal vector, quantized and packed into 32-bits.

Public struct

FPackedPosition

A 3x1 of xyz(11:11:10) format.

Public struct

FPackedRGB10A2N

A vector, quantized and packed into 32-bits.

Public struct

FPackedRGBA16N

A vector, quantized and packed into 32-bits.

Public struct

FParameterAllocation

Public class

FPendingCleanupObjects

A set of cleanup objects which are pending deletion.

Public struct

FPixelFormatInfo

Information about a pixel format.

Public class

FPixelInspectorRequest

Class use to add FScene pixel inspect request

Public struct

FPixelShaderUtils

All utils for pixel shaders.

Public struct

FPooledRDGBuffer

Render graph tracked Buffer.

Public struct

FPooledRenderTarget

The reference to a pooled render target, use like this: TRefCountPtr

Public struct

FPooledRenderTargetDesc

All necessary data to create a render target from the pooled render targets.

Public class

FPostOpaqueRenderParameters

Public class

FPreSceneRenderValues

Public class

FPrimitiveIdDummyBuffer

Default PrimitiveId vertex buffer.

Public struct

FQueryVisualizeTexureInfo

Public struct

FRayGenShaderUtils

All utils for ray generation shaders.

Public class

FRDGBuffer

Render graph tracked buffers.

Public struct

FRDGBufferDesc

Descriptor for render graph tracked Buffer.

Public class

FRDGBufferSRV

Render graph tracked SRV.

Public struct

FRDGBufferSRVDesc

Public class

FRDGBufferUAV

Render graph tracked UAV.

Public struct

FRDGBufferUAVDesc

Public class

FRDGBuilder

Builds the per-frame render graph.

Public class

FRDGEventName

Opaque object to store a draw event.

Public class

FRDGEventScope

Hierarchical scope for draw events of passes.

Public class

FRDGResource

Generic graph resource.

Public class

FRDGTexture

Render graph tracked Texture.

Public class

FRDGTextureSRV

Render graph tracked SRV.

Public class

FRDGTextureSRVDesc

Decsriptor for render graph tracked SRV.

Public class

FRDGTextureUAV

Render graph tracked UAV.

Public class

FRDGTextureUAVDesc

Decsriptor for render graph tracked UAV.

Public class

FRenderCommand

Render commands.

Public class

FRenderCommandFence

Render fences.

Public struct

FRenderGraphPass

Base class of a render graph pass

Public class

FRenderResource

A rendering resource which is owned by the rendering thread.

Public struct

FRenderTargetBinding

Render graph information about how to bind a render target.

Public struct

FRenderTargetBindingSlots

Special shader parameters type for a pass parameter to setup render targets.

Public class

FRenderTargetParameters

Useful parameter struct that only have render targets.

Public class

FRenderTargetPool

Encapsulates the render targets pools that allows easy sharing (mostly used on the render thread side)

Public struct

FRenderTargetPoolEvent

Public class

FRenderThreadScope

RenderThread scoped work.

Public struct

FResourceTableEntry

Each entry in a resource table is provided to the shader compiler for creating mappings.

Public class

FRWShaderParameter

A class that binds either a UAV or SRV of a resource.

Public struct

FSceneRenderTargetItem

Single render target item consists of a render surface and its resolve texture, Render thread side

Public class

FScreenRectangleIndexBuffer

Public class

FScreenRectangleVertexBuffer

Static vertex and index buffer used for 2D screen rectangles.

Public class

FScreenSpaceVertexBuffer

Public class

FSelfContainedShaderId

Self contained version of FShaderId , which is useful for serializing.

Public class

FSerializationHistory

Encapsulates information about a shader's serialization behavior, used to detect when C++ serialization changes to auto-recompile.

Public class

FSerializationHistoryTraversalState

Tracks state when traversing a FSerializationHistory .

Public class

FShader

A compiled shader and its parameter bindings.

Public struct

FShaderBindings

Public class

FShaderCode

Public struct

FShaderCodeLibrary

Collection of unique shader code Populated at cook time

Public struct

FShaderCodeLibraryPipeline

Public struct

FShaderCodePackedResourceCounts

If this changes you need to make sure all D3D11 shaders get invalidated

Public class

FShaderCodeReader

Later we can transform that to the actual class passed around at the RHI level

Public class

FShaderCompilerDefinitions

Container for shader compiler definitions.

Public struct

FShaderCompilerEnvironment

The environment used to compile a shader.

Public struct

FShaderCompilerError

A shader compiler error or warning.

Public struct

FShaderCompilerInput

Struct that gathers all readonly inputs needed for the compilation of a single shader.

Public struct

FShaderCompilerOutput

The output of the shader compiler.

Public struct

FShaderCompilerResourceTable

Public class

FShaderFactoryInterface

Public class

FShaderId

Uniquely identifies an FShader instance.

Public class

FShaderLooseParameterBufferInfo

Public class

FShaderParameter

A shader parameter's register binding. e.g. float1/2/3/4, can be an array, UAV

Public class

FShaderParameterBindings

Stores all shader parameter bindings and their corresponding offset and size in the shader's parameters struct.

Public class

FShaderParameterInfo

Public class

FShaderParameterMap

A map of shader parameter names to registers allocated to that parameter.

Public class

FShaderParameterMapInfo

Public class

FShaderParametersMetadata

A uniform buffer struct.

Public struct

FShaderParameterStructRef

TODO(RDG): remove from global scope?

Public struct

FShaderPermutationBool

Defines at compile time a boolean permutation dimension.

Public class

FShaderPipeline

A Shader Pipeline instance with compiled stages.

Public class

FShaderPipelineCache

FShaderPipelineCache : The FShaderPipelineCache provides the new Pipeline State Object (PSO) logging, serialisation & precompilation mechanism that replaces FShaderCache.

Public class

FShaderPipelineType

Binding of a set of shader stages in a single pipeline.

Public class

FShaderPipelineTypeDependency

Public class

FShaderResource

Compiled shader bytecode and its corresponding RHI resource.

Public class

FShaderResourceId

Uniquely identifies an FShaderResource .

Public class

FShaderResourceParameter

A shader resource binding (textures or samplerstates).

Public class

FShaderSaveArchive

Archive used when saving shaders, which generates data used to detect serialization mismatches on load.

Public struct

FShaderTarget

Public class

FShaderType

An object which is used to serialize/deserialize, compile, and cache a particular shader class.

Public class

FShaderTypeDependency

Encapsulates a dependency on a shader type and saved state from that shader type.

Public class

FShaderUniformBufferParameter

Public struct

FStableShaderKeyAndValue

Public class

FStackRDGEventScopeRef

Stack reference of render graph scope.

Public class

FSuspendRenderingThread

Render thread suspension.

Public class

FTexture

A textures resource.

Public class

FTextureReference

A texture reference resource.

Public class

FTickableObjectRenderThread

This class provides common registration for render thread tickable objects.

Public class

FTimer

The scene rendering stats.The scene update stats.

Public class

FTwoTrianglesIndexBuffer

Public struct

FUniformBufferCopyInfo

Information for copying members from uniform buffers to packed.

Public class

FVertexBuffer

A vertex buffer resource

Public class

FVertexFactory

Encapsulates a vertex data source which can be linked into a vertex shader.

Public class

FVertexFactoryParameterRef

An encapsulation of the vertex factory parameters for a shader.

Public class

FVertexFactoryShaderParameters

An interface to the parameter bindings for the vertex factory used by a shader.

Public class

FVertexFactoryType

An object used to represent the type of a vertex factory.

Public class

FVertexFactoryTypeDependency

Encapsulates a dependency on a vertex factory type and saved state from that vertex factory type.

Public struct

FVertexInputStream

Public struct

FVertexStreamComponent

A typed data source for a vertex factory which streams data from a vertex buffer.

Public struct

FVirtualTextureSpaceDesc

Public class

FVisualizeTexture

Public class

FVisualizeTextureVS

Vertex shader to draw a full screen quad that works on all platforms.

Public class

ICustomCulling

Public class

ICustomVisibilityQuery

Public struct

IPooledRenderTarget

Render thread side, use TRefCountPtr , allows sharing and VisualizeTexture

Public class

IRendererModule

The public interface of the renderer module.

Public class

IVirtualTexture

Interface of a virtual texture

Public class

IVirtualTextureProducer

Public class

SceneRenderingBitArrayAllocator

Public class

SceneRenderingSetAllocator

Public class

SceneRenderingSparseArrayAllocator

Public class

TAlignedShaderParameterPtr

PLATFORM_64BITS.

Public class

TAlignedTypedef

Alignements tools because alignas() does not work on type in clang.

Public class

TBoundShaderStateHistory

A list of the most recently used bound shader states.

Public class

TCompareShaderTypePermutation

Used to compare order shader types permutation deterministically.

Public class

TEnqueueUniqueRenderCommandType

Public class

TGlobalResource

Used to declare a render resource that is initialized/released by static initialization/destruction.

Public struct

TLambdaRenderPass

Render graph pass with lambda execute function

Public struct

TMapRDGBufferSRVFuncs

Defines how the map's pairs are hashed.

Public struct

TMapRDGBufferUAVFuncs

Defines how the map's pairs are hashed.

Public class

TOptionalShaderMapRef

A reference to an optional shader, initialized with a shader type from a shader map if it is available or nullptr if it is not.

Public class

TShaderMap

A collection of shaders of different types, but the same meta type.

Public class

TShaderMapRef

A reference which is initialized with the requested shader type from a shader map.

Public struct

TShaderParameterTypeInfo

Template to transcode some meta data information for a type not specific to shader parameters API.

Public struct

TShaderPermutationDomain

Variadic template that defines an arbitrary multi-dimensional permutation domain, that can be instantiated to represent a vector within the domain.

Public class

TShaderPermutationDomainSpetialization

C++11 doesn't allow partial specialization of templates method or function.

Public struct

TShaderPermutationInt

Defines at compile time a permutation dimension made of int32 from 0 to N -1.

Public struct

TShaderPermutationSparseInt

Defines at compile time a permutation dimension made of specific int32.

Public class

TShaderResourceParameterArray

Static array of shader resource shader that is initialized to nullptr.

Public struct

TShaderResourceParameterTypeInfo

Public struct

TShaderTypePermutation

Define a shader permutation uniquely according to its type, and permutation id.

Public class

TShaderUniformBufferParameter

A shader uniform buffer binding with a specific structure.

Public class

TUniformBuffer

A uniform buffer resource.

Public class

TUniformBufferRef

A reference to a uniform buffer RHI resource with a specific structure.

Constants

Name

Description

DebugUtilColor

Typedefs

Name

Description

FGlobalBoundShaderState_Internal

FPostOpaqueRenderDelegate

FPreSceneRenderDelegate

FRDGBufferRef

FRDGBufferSRVRef

FRDGBufferUAVRef

FRDGResourceRef

Defines the RDG resource references for user code not forgetting the const every time.

FRDGTextureDesc

Descriptor of a graph tracked texture.

FRDGTextureRef

FRDGTextureSRVRef

FRDGTextureUAVRef

FShaderPermutation

FShaderPermutationNone

Global shader permutation domain with no dimension.

FSharedShaderCodeRelease

FSharedShaderCodeRequest

FVertexInputStreamArray

Number of vertex input bindings to allocate inline within a FMeshDrawCommand .

SceneRenderingAllocator

Shortcut for the allocator used by scene rendering.

unaligned_int32

On x86 etc.

unaligned_uint32

Enums

Name

Description

Public enum

CrossCompiler::

Cross compiler support/common functionality.

Public enum

CrossCompiler::EPackedTypeIndex

Cross compiler support/common functionality.

Public enum

CrossCompiler::EPackedTypeName

Cross compiler support/common functionality.

Public enum

CrossCompiler::EShaderStage

Cross compiler support/common functionality.

Public enum

ECompilerFlags

Public enum

EConstructTextureFlags

Flags that control ConstructTexture2D

Public enum

EDrawRectangleFlags

Use r.DrawDenormalizedQuadMode to override the function call setting (quick way to see if an artifact is caused by this optimization)

Public enum

EMipFadeSettings

Public enum

ERenderGraphPassFlags

Flags to anotate passes.

Public enum

ERenderTargetPoolEventType

Public enum

ERenderTargetTransience

Public enum

ERenderThreadIdleTypes::Type

Public enum

EShaderParameterFlags

Public enum

EShaderParameterType

Public enum

EShaderPrecisionModifier::Type

Public enum

EVertexStreamUsage

Functions

Name Description

Public function

void

 

AddFrameRenderPrerequisite

(
    const FGraphEventRef & TaskToAdd
)

Adds a task that must be completed either before the next scene draw or a flush rendering commands This can be called from any thread though it probably doesn't make sense to call it from the render thread.

Public function

void

 

AddShaderSourceDirectoryMapping

(
    const FString & VirtualShaderDirect...,
    const FString & RealShaderDirectory
)

Maps a real shader directory existing on disk to a virtual shader directory.

Public function

void

 

AdvanceFrameRenderPrerequisite()

Gather the frame render prerequisites and make sure all render commands are at least queued

Public function

void

 

AdvanceRenderingThreadStatsGT

(
    bool bDiscardCallstack,
    int64 StatsFrame,
    int32 MasterDisableChangeTagStartFr...
)

Advances stats for the rendering thread. Called from the game thread.

Public function

bool

 

AllowDebugViewmodes

(
    EShaderPlatform Platform
)

Returns true if debug viewmodes are allowed for the given platform.

Public function

bool

 

AllowDebugViewmodes()

Returns true if debug viewmodes are allowed for the current platform.

Public function

const TMap < ...

 

AllShaderSourceDirectoryMappings()

Returns the map virtual shader directory path -> real shader directory path.

Public function

void

 

BackupGlobalShaderMap

(
    FGlobalShaderBackupData & OutGlobal...
)

Backs up all global shaders to memory through serialization, and removes all references to FShaders from the global shader map.

Public function

void

 

BeginCleanup

(
    FDeferredCleanupInterface * Cle...
)

Adds the specified deferred cleanup object to the current set of pending cleanup objects.

Public function

void

 

BeginInitResource

(
    FRenderResource * Resource
)

Sends a message to the rendering thread to initialize a resource.

Public function

void

 

BeginReleaseResource

(
    FRenderResource * Resource
)

Sends a message to the rendering thread to release a resource. This is called in the game thread.

Public function

void

 

BeginSetUniformBufferContents

(
    TUniformBuffer < TBufferStruct >& U...,
    const TBufferStruct& Struct
)

Sends a message to the rendering thread to set the contents of a uniform buffer.

Public function

void

 

BeginUpdateResourceRHI

(
    FRenderResource * Resource
)

Sends a message to the rendering thread to update a resource. This is called in the game thread.

Public function

void

 

BuildShaderFileToUniformBufferMap

(
    TMap < FString , TArray < const TCHAR ...
)

Public function

void

 

CacheUniformBufferIncludes

(
    TMap < const TCHAR *, struct FCa ...,
    EShaderPlatform Platform
)

Public function

FIntPoint

 

CalcMipMapExtent

(
    uint32 TextureSizeX,
    uint32 TextureSizeY,
    EPixelFormat Format,
    uint32 MipIndex
)

Calculates the extent of a mip.

Public function

void

 

CalcMipMapExtent3D

(
    uint32 TextureSizeX,
    uint32 TextureSizeY,
    uint32 TextureSizeZ,
    EPixelFormat Format,
    uint32 MipIndex,
    uint32 & OutXExtent,
    uint32 & OutYExtent,
    uint32 & OutZExtent
)

Calculates the extent of a mip.

Public function

SIZE_T

 

CalcTextureMipHeightInBlocks

(
    uint32 TextureSizeY,
    EPixelFormat Format,
    uint32 MipIndex
)

Calculates the height of a mip, in blocks.

Public function

SIZE_T

 

CalcTextureMipMapSize

(
    uint32 TextureSizeX,
    uint32 TextureSizeY,
    EPixelFormat Format,
    uint32 MipIndex
)

Calculates the amount of memory used for a single mip-map of a texture.

Public function

SIZE_T

 

CalcTextureMipMapSize3D

(
    uint32 TextureSizeX,
    uint32 TextureSizeY,
    uint32 TextureSizeZ,
    EPixelFormat Format,
    uint32 MipIndex
)

Calculates the amount of memory used for a single mip-map of a texture 3D.

Public function

SIZE_T

 

CalcTextureMipWidthInBlocks

(
    uint32 TextureSizeX,
    EPixelFormat Format,
    uint32 MipIndex
)

Calculates the width of a mip, in blocks.

Public function

SIZE_T

 

CalcTextureSize

(
    uint32 SizeX,
    uint32 SizeY,
    EPixelFormat Format,
    uint32 MipCount
)

Calculates the amount of memory used for a texture.

Public function

SIZE_T

 

CalcTextureSize3D

(
    uint32 SizeX,
    uint32 SizeY,
    uint32 SizeZ,
    EPixelFormat Format,
    uint32 MipCount
)

Calculates the amount of memory used for a texture.

Public function

SIZE_T

 

CalculateImageBytes

(
    uint32 SizeX,
    uint32 SizeY,
    uint32 SizeZ,
    uint8 Format
)

CalculateImageBytes

Public function Static

void

 

CheckNotBlockedOnRenderThread()

Asserts if called from the main thread when the main thread is blocked on the rendering thread.

Public function

void

 

CheckRenderingThreadHealth()

Checks if the rendering thread is healthy and running.

Public function

void

 

CheckShaderHashCacheInclude

(
    const FString & VirtualFilePath,
    EShaderPlatform ShaderPlatform
)

Checks if shader include isn't skipped by a shader hash cache.

Public function

bool

 

CheckVirtualShaderFilePath

(
    const FString & VirtualPath,
    TArray < FShaderCompilerError >*...
)

Validates the format of a virtual shader file path.

Public function

void

 

ClearUnusedGraphResources

(
    const TShaderClass* Shader,
    typename TShaderClass::FParameters ...,
    std::initializer_list< FRDGResource ...
)

Public function

void

 

ClearUnusedGraphResourcesImpl

(
    const FShaderParameterBindings & Sh...,
    const FShaderParametersMetadata ...,
    void* InoutParameters,
    std::initializer_list< FRDGResource ...
)

Clears all render graph tracked resources that are not bound by a shader.

Public function

void

 

CopyTextureData2D

(
    const void* Source,
    void* Dest,
    uint32 SizeY,
    EPixelFormat Format,
    uint32 SourceStride,
    uint32 DestStride
)

Copies the data for a 2D texture between two buffers with potentially different strides.

Public function

TUniformBuff ...

 

CreateUniformBufferImmediate

(
    const TBufferStruct& Value,
    EUniformBufferUsage Usage,
    EUniformBufferValidation Validation
)

Creates a uniform buffer with the given value, and returns a structured reference to it.

Public function

void

 

CreateUniformBufferShaderDeclaration

(
    const TCHAR * Name,
    const FShaderParametersMetadata & U...,
    FString & OutDeclaration
)

Creates a shader code declaration of this struct for the given shader platform.

Public function Static

bool

 

CrossCompiler::IsValidPackedTypeName

(
    EPackedTypeName TypeName
)

Public function Static

EPackedTypeN ...

 

CrossCompiler::PackedTypeIndexToTypeName

(
    EPackedTypeIndex TypeIndex
)

Public function Static

uint8

 

CrossCompiler::PackedTypeIndexToTypeName

(
    uint8 ArrayType
)

Public function Static

EPackedTypeI ...

 

CrossCompiler::PackedTypeNameToTypeIndex

(
    EPackedTypeName TypeName
)

Public function Static

uint8

 

CrossCompiler::PackedTypeNameToTypeIndex

(
    uint8 ArrayName
)

Public function Static

uint8

 

CrossCompiler::ShaderStageIndexToTypeName

(
    uint8 ShaderStage
)

Public function

void

 

DispatchComputeShader

(
    FRHIAsyncComputeCommandListImmediat ...,
    FShader * Shader,
    uint32 ThreadGroupCountX,
    uint32 ThreadGroupCountY,
    uint32 ThreadGroupCountZ
)

Public function

void

 

DispatchComputeShader

(
    FRHICommandList & RHICmdList,
    FShader * Shader,
    uint32 ThreadGroupCountX,
    uint32 ThreadGroupCountY,
    uint32 ThreadGroupCountZ
)

Helper function to dispatch a compute shader while checking that parameters have been set correctly.

Public function

void

 

DispatchIndirectComputeShader

(
    FRHICommandList & RHICmdList,
    FShader * Shader,
    FVertexBufferRHIParamRef ArgumentBu...,
    uint32 ArgumentOffset
)

Helper function to dispatch a compute shader indirectly while checking that parameters have been set correctly.

Public function

void

 

DumpShaderPipelineStats

(
    EShaderPlatform Platform
)

Dumps shader pipeline stats to the log.

Public function

void

 

DumpShaderStats

(
    EShaderPlatform Platform,
    EShaderFrequency Frequency
)

Dumps shader stats to the log. Will also print some shader pipeline information.

Public function

void

 

EmitNullShaderParameterFatalError

(
    const FShader * Shader,
    const FShaderParametersMetadata ...,
    uint16 MemberOffset
)

Raise fatal error when a required shader parameter has not been set.

Public function

void

 

EndBatchedRelease()

Disables the batching of calls to BeginReleaseResource This is called in the game thread.

Public function

void

 

EnqueueUniqueRenderCommand

(
    LAMBDA&& Lambda
)

Public function

void

 

EnqueueUniqueRenderCommand

(
    LAMBDA& Lambda
)

Public function

FShaderType ...

 

FindShaderTypeByName

(
    FName ShaderTypeName
)

Finds the shader type with a given name.

Public function

FShaderParam ...

 

FindUniformBufferStructByFName

(
    FName StructName
)

Public function

FShaderParam ...

 

FindUniformBufferStructByName

(
    const TCHAR * StructName
)

Finds the FShaderParametersMetadata corresponding to the given name, or NULL if not found.

Public function

FVertexFacto ...

 

FindVertexFactoryType

(
    FName TypeName
)

Find the vertex factory type with the given name.

Public function

void

 

FlushPendingDeleteRHIResources_GameThread()

Public function

void

 

FlushPendingDeleteRHIResources_RenderThread()

Public function

void

 

FlushRenderingCommands

(
    bool bFlushDeferredDeletes
)

Waits for the rendering thread to finish executing all pending rendering commands.

Public function

void

 

FlushShaderFileCache()

Flushes the shader file and CRC cache, and regenerates the binary shader files if necessary.

Public function

void

 

GenerateReferencedUniformBuffers

(
    const TCHAR * SourceFilename,
    const TCHAR * ShaderTypeName,
    const TMap < FString , TArray < const ...,
    TMap < const TCHAR *, FCachedUni ...
)

Parses the given source file and its includes for references of uniform buffers, which are then stored in UniformBufferEntries.

Public function

FVector

 

GenerateYAxis

(
    const VectorType& XAxis,
    const VectorType& ZAxis
)

Given 2 axes of a basis stored as a packed type, regenerates the y-axis tangent vector and scales by z.W

Public function

float

 

GetBasisDeterminantSign

(
    const FVector & XAxis,
    const FVector & YAxis,
    const FVector & ZAxis
)

Constructs a basis matrix for the axis vectors and returns the sign of the determinant

Public function

int8

 

GetBasisDeterminantSignByte

(
    const FPackedNormal & XAxis,
    const FPackedNormal & YAxis,
    const FPackedNormal & ZAxis
)

Constructs a basis matrix for the axis vectors and returns the sign of the determinant

Public function

ECubeFace

 

GetCubeFaceFromName

(
    const FString & Name
)

Convert from text string to ECubeFace

Public function

const TCHAR ...

 

GetCubeFaceName

(
    ECubeFace Face
)

Convert from ECubeFace to text string

Public function

uint16

 

GetCubeVertexIndex

(
    uint32 X,
    uint32 Y,
    uint32 Z
)

Maps from an X,Y,Z cube vertex coordinate to the corresponding vertex index.

Public function

int32

 

GetCVarForceLOD()

Shared by renderer and engine, compiles down to a constant in final release

Public function

int32

 

GetCVarForceLODShadow()

Public function

TShaderMap < ...

 

GetGlobalShaderMap

(
    EShaderPlatform Platform
)

Accesses the global shader map.

Public function

TShaderMap < ...

 

GetGlobalShaderMap

(
    ERHIFeatureLevel::Type FeatureLevel
)

Overload for the above GetGlobalShaderMap which takes a feature level and translates to the appropriate shader platform

Public function

FRHICommandL ...

 

GetImmediateCommandList_ForRenderCommand()

Macros for using render commands.

Public function

TStatId

 

GetMemoryStatType

(
    EShaderFrequency ShaderFrequency
)

Controls whether shader related logs are visible.

Public function

FPendingClea ...

 

GetPendingCleanupObjects()

Transfers ownership of the current set of pending cleanup objects to the caller.

Public function

EPixelFormat

 

GetPixelFormatFromString

(
    const TCHAR * InPixelFormatStr
)

String to enum (not case sensitive)

Public function

const TCHAR ...

 

GetPixelFormatString

(
    EPixelFormat InPixelFormat
)

Enum to string

Public function

const FSHAHa ...

 

GetShaderFileHash

(
    const TCHAR * VirtualFilePath,
    EShaderPlatform ShaderPlatform
)

Calculates a Hash for the given filename if it does not already exist in the Hash cache.

Public function

const FSHAHa ...

 

GetShaderFilesHash

(
    const TArray < FString >& VirtualFi...,
    EShaderPlatform ShaderPlatform
)

Calculates a Hash for the list of filenames if it does not already exist in the Hash cache.

Public function

void

 

GetShaderIncludes

(
    const TCHAR * EntryPointVirtual...,
    const TCHAR * VirtualFilePath,
    TArray < FString >& IncludeVirtualF...,
    EShaderPlatform ShaderPlatform,
    uint32 DepthLimit
)

Recursively populates IncludeFilenames with the include filenames from Filename

Public function

uint32

 

GetTypeHash

(
    const TShaderTypePermutation < MetaS...
)

Public function

FIndexBuffer ...

 

GetUnitCubeIndexBuffer()

Unit cube index buffer

Public function

FVertexBuffe ...

 

GetUnitCubeVertexBuffer()

Unit cube vertex buffer (VertexDeclarationFVector4)

Public function

FVertexDecla ...

 

GetVertexDeclarationFVector2()

Public function

FVertexDecla ...

 

GetVertexDeclarationFVector3()

Public function

FVertexDecla ...

 

GetVertexDeclarationFVector4()

Public function

void

 

InitializeShaderHashCache()

Initializes shader hash cache from IShaderFormatModules.

Public function

void

 

InitializeShaderTypes()

Initializes cached shader type data.

Public function

bool

 

IsAnyForwardShadingEnabled

(
    EShaderPlatform Platform
)

Returns if ForwardShading or SimpleForwardShading is enabled. Only valid for the current platform.

Public function

bool

 

IsForwardShadingEnabled

(
    EShaderPlatform Platform
)

Returns if ForwardShading is enabled.

Public function

bool

 

IsHDRAllowed()

Public function

bool

 

IsHDREnabled()

Public function

bool

 

IsRayTracingEnabled()

Returns `true_ when running on RT-capable machine and RT support is enabled for the project.

Public function

bool

 

IsRenderingThreadHealthy()

Checks if the rendering thread is healthy and running, without crashing

Public function

bool

 

IsSimpleForwardShadingEnabled

(
    EShaderPlatform Platform
)

Public function

bool

 

IsUsingDBuffers

(
    EShaderPlatform Platform
)

Returns whether DBuffer decals are enabled for a given shader platform

Public function

bool

 

IsUsingGBuffers

(
    EShaderPlatform Platform
)

Returns if the GBuffer is used. Only valid for the current platform.

Public function

bool

 

IsUsingPerPixelDBufferMask

(
    EShaderPlatform Platform
)

Public function

bool

 

LoadShaderSourceFile

(
    const TCHAR * VirtualFilePath,
    FString & OutFileContents,
    TArray < FShaderCompilerError >*...
)

Loads the shader file with the given name.

Public function

void

 

LoadShaderSourceFileChecked

(
    const TCHAR * VirtualFilePath,
    FString & OutFileContents
)

Loads the shader file with the given name.

Public function

constexpr bo...

 

operator!

(
    ERenderGraphPassFlags E
)

Public function

constexpr bo...

 

operator!

(
    EVertexStreamUsage E
)

Public function

constexpr ER ...

 

operator&

(
    ERenderGraphPassFlags Lhs,
    ERenderGraphPassFlags Rhs
)

Public function

constexpr EV ...

 

operator&

(
    EVertexStreamUsage Lhs,
    EVertexStreamUsage Rhs
)

Public function

EVertexStrea ...

 

operator&=

(
    EVertexStreamUsage & Lhs,
    EVertexStreamUsage Rhs
)

Public function

ERenderGraph ...

 

operator&=

(
    ERenderGraphPassFlags & Lhs,
    ERenderGraphPassFlags Rhs
)

Public function

constexpr EV ...

 

operator^

(
    EVertexStreamUsage Lhs,
    EVertexStreamUsage Rhs
)

Public function

constexpr ER ...

 

operator^

(
    ERenderGraphPassFlags Lhs,
    ERenderGraphPassFlags Rhs
)

Public function

EVertexStrea ...

 

operator^=

(
    EVertexStreamUsage & Lhs,
    EVertexStreamUsage Rhs
)

Public function

ERenderGraph ...

 

operator^=

(
    ERenderGraphPassFlags & Lhs,
    ERenderGraphPassFlags Rhs
)

Public function

constexpr ER ...

 

operator|

(
    ERenderGraphPassFlags Lhs,
    ERenderGraphPassFlags Rhs
)

Public function

constexpr EV ...

 

operator|

(
    EVertexStreamUsage Lhs,
    EVertexStreamUsage Rhs
)

Public function

ERenderGraph ...

 

operator|=

(
    ERenderGraphPassFlags & Lhs,
    ERenderGraphPassFlags Rhs
)

Public function

EVertexStrea ...

 

operator|=

(
    EVertexStreamUsage & Lhs,
    EVertexStreamUsage Rhs
)

Public function

constexpr ER ...

 

operator~

(
    ERenderGraphPassFlags E
)

Public function

constexpr EV ...

 

operator~

(
    EVertexStreamUsage E
)

Public function

FString

 

ParseVirtualShaderFilename

(
    const FString & InFilename
)

Converts an absolute or relative shader filename to a filename relative to the shader directory.

Public function

bool

 

PlatformSupportsSimpleForwardShading

(
    EShaderPlatform Platform
)

Public function

void

 

QuantizeSceneBufferSize

(
    const FIntPoint & InBufferSize,
    FIntPoint & OutBufferSize
)

Takes the requested buffer size and quantizes it to an appropriate size for the rest of the rendering pipeline.

Public function

FRDGTextureR ...

 

RegisterExternalTextureWithFallback

(
    FRDGBuilder & GraphBuilder,
    const TRefCountPtr < IPooledRenderTa ...,
    const TRefCountPtr < IPooledRenderTa ...,
    const TCHAR * ExternalPooledTex...
)

Register external texture with fallback if the resource is invalid.

Public function

void

 

ReleaseResourceAndFlush

(
    FRenderResource * Resource
)

Sends a message to the rendering thread to release a resource, and spins until the rendering thread has processed the message.

Public function

void

 

RenderUtilsInit()

Public function

void

 

ResetAllShaderSourceDirectoryMappings()

Hook for shader compile worker to reset the directory mappings.

Public function

void

 

RestoreGlobalShaderMap

(
    const FGlobalShaderBackupData & Glo...
)

Recreates shaders in the global shader map from the serialized memory.

Public function

void

 

SerializeUniformBufferInfo

(
    FShaderSaveArchive & Ar,
    const TMap < const TCHAR *, FCac ...
)

Records information about all the uniform buffer layouts referenced by UniformBufferEntries.

Public function

void

 

SetLocalUniformBufferParameter

(
    FRHICommandList & RHICmdList,
    TShaderRHIRef Shader,
    const FShaderUniformBufferParameter ...,
    const FLocalUniformBuffer & LocalUn...
)

Sets the value of a shader uniform buffer parameter to a uniform buffer containing the struct.

Public function

void

 

SetPixelShaderBool

(
    FRHICommandList & RHICmdList,
    FPixelShaderRHIParamRef PixelShader,
    const FShaderParameter & Parameter,
    bool Value
)

Sets the value of a pixel shader bool parameter.

Public function

void

 

SetRHIThreadEnabled

(
    bool bEnableDedicatedThread,
    bool bEnableRHIOnTaskThreads
)

Public function

void

 

SetSamplerParameter

(
    TRHICmdList& RHICmdList,
    ShaderTypeRHIParamRef Shader,
    const FShaderResourceParameter & Pa...,
    FSamplerStateRHIParamRef SamplerSta...
)

Sets the value of a shader sampler parameter. Template'd on shader type.

Public function

void

 

SetShaderParameters

(
    TRHICmdList& RHICmdList,
    const TShaderClass* Shader,
    TShaderRHI* ShadeRHI,
    const typename TShaderClass::FParam...
)

Set shader's parameters from its parameters struct.

Public function

void

 

SetShaderUAVs

(
    TRHICmdList& RHICmdList,
    const TShaderClass* Shader,
    TShaderRHI* ShadeRHI,
    const typename TShaderClass::FParam...
)

Set compute shader UAVs.

Public function

void

 

SetShaderUAVs

(
    TRHICmdList& RHICmdList,
    const TShaderClass* Shader,
    FComputeShaderRHIParamRef ShadeRHI,
    const typename TShaderClass::FParam...
)

Public function

void

 

SetShaderValue

(
    FRHICommandList & RHICmdList,
    ShaderRHIParamRef Shader,
    const FShaderParameter & Parameter,
    const bool& Value,
    uint32 ElementIndex
)

Specialization of the above for C++ bool type.

Public function

void

 

SetShaderValue

(
    TRHICmdList& RHICmdList,
    ShaderRHIParamRef Shader,
    const FShaderParameter & Parameter,
    const ParameterType& Value,
    uint32 ElementIndex
)

Sets the value of a shader parameter.

Public function

void

 

SetShaderValue

(
    FRHIAsyncComputeCommandList & RHICm...,
    ShaderRHIParamRef Shader,
    const FShaderParameter & Parameter,
    const bool& Value,
    uint32 ElementIndex
)

Specialization of the above for C++ bool type.

Public function

void

 

SetShaderValueArray

(
    TRHICmdList& RHICmdList,
    ShaderRHIParamRef Shader,
    const FShaderParameter & Parameter,
    const bool* Values,
    uint32 NumElements,
    uint32 BaseElementIndex
)

Specialization of the above for C++ bool type.

Public function

void

 

SetShaderValueArray

(
    TRHICmdList& RHICmdList,
    ShaderRHIParamRef Shader,
    const FShaderParameter & Parameter,
    const ParameterType* Values,
    uint32 NumElements,
    uint32 BaseElementIndex
)

Sets the value of a shader parameter array.

Public function

void

 

SetShaderValueOnContext

(
    IRHICommandContext & RHICmdListCont...,
    ShaderRHIParamRef Shader,
    const FShaderParameter & Parameter,
    const ParameterType& Value,
    uint32 ElementIndex
)

Public function

void

 

SetSRVParameter

(
    TRHICmdList& RHICmdList,
    ShaderTypeRHIParamRef Shader,
    const FShaderResourceParameter & Pa...,
    FShaderResourceViewRHIParamRef NewS...
)

Sets the value of a shader resource view parameter Template'd on shader type (e.g. pixel shader or compute shader).

Public function

void

 

SetTextureParameter

(
    TRHICmdList& RHICmdList,
    ShaderTypeRHIParamRef Shader,
    const FShaderResourceParameter & Te...,
    const FShaderResourceParameter & Sa...,
    FSamplerStateRHIParamRef SamplerSta...,
    FTextureRHIParamRef TextureRHI,
    uint32 ElementIndex
)

Sets the value of a shader texture parameter. Template'd on shader type.

Public function

void

 

SetTextureParameter

(
    TRHICmdList& RHICmdList,
    ShaderTypeRHIParamRef Shader,
    const FShaderResourceParameter & Te...,
    const FShaderResourceParameter & Sa...,
    const FTexture * Texture,
    uint32 ElementIndex
)

Sets the value of a shader texture parameter. Template'd on shader type

Public function

void

 

SetTextureParameter

(
    TRHICmdList& RHICmdList,
    ShaderTypeRHIParamRef Shader,
    const FShaderResourceParameter & Pa...,
    FTextureRHIParamRef NewTextureRHI
)

Sets the value of a shader surface parameter (e.g. to access MSAA samples).

Public function

void

 

SetUAVParameter

(
    TRHICmdList& RHICmdList,
    FComputeShaderRHIParamRef ComputeSh...,
    const FShaderResourceParameter & Pa...,
    FUnorderedAccessViewRHIParamRef New...
)

Sets the value of a unordered access view parameter

Public function

bool

 

SetUAVParameterIfCS

(
    TRHICmdList& RHICmdList,
    const FPixelShaderRHIParamRef Shade...,
    const FShaderResourceParameter & UA...,
    FUnorderedAccessViewRHIParamRef UAV
)

Public function

bool

 

SetUAVParameterIfCS

(
    TRHICmdList& RHICmdList,
    const FHullShaderRHIParamRef Shader,
    const FShaderResourceParameter & UA...,
    FUnorderedAccessViewRHIParamRef UAV
)

Public function

bool

 

SetUAVParameterIfCS

(
    TRHICmdList& RHICmdList,
    const FDomainShaderRHIParamRef Shad...,
    const FShaderResourceParameter & UA...,
    FUnorderedAccessViewRHIParamRef UAV
)

Public function

bool

 

SetUAVParameterIfCS

(
    TRHICmdList& RHICmdList,
    const FGeometryShaderRHIParamRef Sh...,
    const FShaderResourceParameter & UA...,
    FUnorderedAccessViewRHIParamRef UAV
)

Public function

bool

 

SetUAVParameterIfCS

(
    TRHICmdList& RHICmdList,
    const FComputeShaderRHIParamRef Sha...,
    const FShaderResourceParameter & UA...,
    FUnorderedAccessViewRHIParamRef UAV
)

Public function

bool

 

SetUAVParameterIfCS

(
    TRHICmdList& RHICmdList,
    const FVertexShaderRHIParamRef Shad...,
    const FShaderResourceParameter & UA...,
    FUnorderedAccessViewRHIParamRef UAV
)

Public function

void

 

SetUniformBufferParameter

(
    TRHICmdList& RHICmdList,
    TShaderRHIRef Shader,
    const FShaderUniformBufferParameter ...,
    FUniformBufferRHIParamRef UniformBu...
)

Sets the value of a shader uniform buffer parameter to a uniform buffer containing the struct.

Public function

void

 

SetUniformBufferParameter

(
    TRHICmdList& RHICmdList,
    TShaderRHIRef Shader,
    const TShaderUniformBufferParameter ...,
    const TUniformBufferRef < TBufferStr...
)

Sets the value of a shader uniform buffer parameter to a uniform buffer containing the struct.

Public function

void

 

SetUniformBufferParameter

(
    TRHICmdList& RHICmdList,
    TShaderRHIRef Shader,
    const TShaderUniformBufferParameter ...,
    const TUniformBuffer < TBufferStruct...
)

Sets the value of a shader uniform buffer parameter to a uniform buffer containing the struct.

Public function

void

 

SetUniformBufferParameterImmediate

(
    TRHICmdList& RHICmdList,
    TShaderRHIRef Shader,
    const TShaderUniformBufferParameter ...,
    const TBufferStruct& UniformBuffer...
)

Sets the value of a shader uniform buffer parameter to a value of the struct.

Public function

void

 

SetUniformBufferParameterImmediate

(
    FRHICommandList & RHICmdList,
    TShaderRHIRef Shader,
    const TShaderUniformBufferParameter ...,
    const TBufferStruct& UniformBuffer...
)

Sets the value of a shader uniform buffer parameter to a value of the struct.

Public function

void

 

ShaderMapAppendKeyString

(
    EShaderPlatform Platform,
    FString & KeyString
)

Appends to KeyString for all shaders.

Public function

bool

 

ShouldCompileRayTracingShadersForProject

(
    EShaderPlatform ShaderPlatform
)

Public function

void

 

StartBatchedRelease()

Enables the batching of calls to BeginReleaseResource This is called in the game thread.

Public function

void

 

StartRenderCommandFenceBundler()

Public function

void

 

StartRenderingThread()

Starts the rendering thread.

Public function

void

 

StopRenderCommandFenceBundler()

Public function

void

 

StopRenderingThread()

Stops the rendering thread.

Public function

void

 

TickRenderingTickables()

Public function

void

 

UninitializeShaderTypes()

Uninitializes cached shader type data.

Public function

void

 

UnsetShaderUAVs

(
    TRHICmdList& RHICmdList,
    const TShaderClass* Shader,
    FComputeShaderRHIParamRef ShadeRHI
)

Unset compute shader UAVs.

Public function

bool

 

UseGPUScene

(
    EShaderPlatform Platform,
    ERHIFeatureLevel::Type FeatureLevel
)

Public function

void

 

ValidateShaderParameters

(
    const FShader * Shader,
    const FShaderParametersMetadata ...,
    const void* Parameters
)

Validates that all resource parameters of a shader are set.

Public function

void

 

VerifyShaderSourceFiles

(
    EShaderPlatform ShaderPlatform
)

Kick off SHA verification for all shader source files

Variables

Name Description

Public variable

FTexture *

 

GBlackArrayTexture

A global black array texture.

Public variable

FTexture *

 

GBlackCubeArrayTexture

A global black cube array texture.

Public variable

FTexture *

 

GBlackTexture

A global black texture.

Public variable

FTexture *

 

GBlackTextureCube

A global black cube texture.

Public variable

FTexture *

 

GBlackTextureDepthCube

A global black cube depth texture.

Public variable

FTexture *

 

GBlackUintVolumeTexture

A global black volume texture

Global black volume texture resource.

Public variable

FTexture *

 

GBlackVolumeTexture

A global black volume texture.

Global black volume texture resource.

Public variable

TGlobalResource ...

 

GCubeIndexBuffer

Public variable

const uint16 [36...

 

GCubeIndices

The indices for drawing a cube.

Public variable

const uint32

 

GDiffuseConvolveMipLevel

4: 8x8 cubemap resolution, shader needs to use the same value as preprocessing

Public variable

TGlobalResource ...

 

GEmptyVertexDeclaration

Public variable

float

 

GEnableMipLevelFading

Whether to enable mip-level fading or not: +1.0f if enabled, -1.0f if disabled.

Public variable

TGlobalResource ...

 

GFilterVertexDeclaration

Public variable

uint32

 

GGameThreadTime

How many cycles the gamethread used (excluding idle time).

Public variable

TShaderMap < FGl ...

 

GGlobalShaderMap

The global shader map.

Public variable

FInputLatencyTi ...

 

GInputLatencyTimer

Global input latency timer. Defined in UnrealClient.cpp

Public variable

bool

 

GIsThreadedRendering

Render thread API.

Public variable

const int32

 

GlobalShaderMapId

Used to identify the global shader map in compile queues.

Public variable

TAtomic < bool >

 

GMainThreadBlockedOnRenderThread

Whether the main thread is currently blocked on the rendering thread, e.g. a call to FlushRenderingCommands.

Public variable

FTexture *

 

GMipColorTexture

A global texture that has a different solid color in each mip-level.

Public variable

int32

 

GMipColorTextureMipLevels

Number of mip-levels in 'GMipColorTexture'

Public variable

FMipFadeSetting ...

 

GMipFadeSettings

Global mip fading settings, indexed by EMipFadeSettings.

Public variable

TGlobalResource ...

 

GNullColorVertexBuffer

The global null color vertex buffer, which is set with a stride of 0 on meshes without a color component.

Public variable

bool

 

GPauseRenderingRealtimeClock

Whether to pause the global realtime clock for the rendering thread (read and write only on main thread).

Public variable

FPixelFormatInf ...

 

GPixelFormats

Public variable

TGlobalResource ...

 

GPrimitiveIdDummy

Public variable

FTimer

 

GRenderingRealtimeClock

Global realtime clock for the rendering thread.

Public variable

TGlobalResource ...

 

GRenderTargetPool

The global render targets for easy shading.

The global render targets pool.

Public variable

uint32 [ERenderT...

 

GRenderThreadIdle

Accumulates how many cycles the renderthread has been idle. It's defined in RenderingThread.cpp.

Public variable

uint32 [ERenderT...

 

GRenderThreadNumIdle

Accumulates how times renderthread was idle. It's defined in RenderingThread.cpp.

Public variable

uint32

 

GRenderThreadTime

How many cycles the renderthread used (excluding idle time).

Public variable

uint32

 

GRHIThreadTime

How many cycles the rhithread used (excluding idle time).

Public variable

TGlobalResource ...

 

GScreenRectangleIndexBuffer

Public variable

TGlobalResource ...

 

GScreenRectangleVertexBuffer

Public variable

TGlobalResource ...

 

GScreenSpaceVertexBuffer

Public variable

uint32

 

GSwapBufferTime

How many cycles it took to swap buffers to present the frame.

Public variable

TGlobalResource ...

 

GTwoTrianglesIndexBuffer

Public variable

bool

 

GUseThreadedRendering

Whether the rendering thread should be created or not.

Public variable

TGlobalResource ...

 

GVisualizeTexture

The global render targets for easy shading.

Public variable

FTexture *

 

GWhiteTexture

A global white texture.

Public variable

FTexture *

 

GWhiteTextureCube

A global white cube texture.

Public variable

 

STATCAT_Advanced