FGPUSkinCache

Windows
MacOS
Linux

References

Module

Engine

Header

/Engine/Source/Runtime/Engine/Public/GPUSkinCache.h

Include

#include "GPUSkinCache.h"

Syntax

class FGPUSkinCache

Variables

Name Description

Protected variable

TArray< FRWBuffersAllocation * >

 

Allocations

Protected variable

bool

 

bRequiresMemoryLimit

Protected variable

TArray< FRHIUnorderedAccessView * >

 

BuffersToTransition

Protected variable

int32

 

CurrentStagingBufferIndex

Protected variable

TArray< FGPUSkinCacheEntry * >

 

Entries

Protected variable

uint64

 

ExtraRequiredMemory

Protected variable

int32

 

FlushCounter

Protected variable

TArray< FRWBuffer >

 

StagingBuffers

For recompute tangents, holds the data required between compute shaders.

Protected variable

uint64

 

UsedMemoryInBytes

Constructors

Name Description

Public function

FGPUSkinCache

(
    bool bInRequiresMemoryLimit
)

Destructors

Name Description

Public function

~FGPUSkinCache()

Functions

Name Description

Protected function

void

 

Cleanup()

Protected function Static

void

 

CVarSinkFunction()

Protected function

void

 

DispatchUpdateSkinning

(
    FRHICommandListImmediate& RHICmdList,
    FGPUSkinCacheEntry* Entry,
    int32 Section,
    uint32 RevisionNumber
)

Protected function

void

 

DispatchUpdateSkinTangents

(
    FRHICommandListImmediate& RHICmdList,
    FGPUSkinCacheEntry* Entry,
    int32 SectionIndex
)

Protected function

void

 

DoDispatch

(
    FRHICommandListImmediate& RHICmdList,
    FGPUSkinCacheEntry* SkinCacheEntry,
    int32 Section,
    int32 RevisionNumber
)

Public function

FCachedGeometrySection

 

GetCachedGeometry

(
    FGPUSkinCacheEntry* InOutEntry,
    uint32 SectionId
)

Public function

uint64

 

GetExtraRequiredMemoryAndReset()

Public function Static

FGPUSkinBatchElementUserData *

 

GetFactoryUserData

(
    FGPUSkinCacheEntry* Entry,
    int32 Section
)

Public function Static

void

 

GetShaderBindings

(
    FGPUSkinCacheEntry* Entry,
    int32 Section,
    const FShader* Shader,
    const FGPUSkinPassthroughVertexFactory* VertexFactory,
    uint32 BaseVertexIndex,
    FShaderResourceParameter GPUSkinCachePositionBuffer,
    FShaderResourceParameter GPUSkinCachePreviousPositionBuffer,
    FMeshDrawSingleShaderBindings& ShaderBindings,
    FVertexInputStreamArray& VertexStreams
)

Protected function Static

FGPUSkinBatchElementUserData *

 

InternalGetFactoryUserData

(
    FGPUSkinCacheEntry* Entry,
    int32 Section
)

Protected function

void

 

InvalidateAllEntries()

Public function Static

bool

 

IsEntryValid

(
    FGPUSkinCacheEntry* SkinCacheEntry,
    int32 Section
)

Public function

void

 

ProcessEntry

(
    FRHICommandListImmediate& RHICmdList,
    FGPUBaseSkinVertexFactory* VertexFactory,
    FGPUSkinPassthroughVertexFactory* TargetVertexFactory,
    const FSkelMeshRenderSection& BatchElement,
    FSkeletalMeshObjectGPUSkin* Skin,
    const FMorphVertexBuffer* MorphVertexBuffer,
    const FSkeletalMeshVertexClothBuffer* ClothVertexBuffer,
    const FClothSimulData* SimData,
    const FMatrix& ClothLocalToWorld,
    float ClothBlendWeight,
    uint32 RevisionNumber,
    int32 Section,
    FGPUSkinCacheEntry*& InOutEntry
)

Public function Static

void

 

Release

(
    FGPUSkinCacheEntry*& SkinCacheEntry
)

Protected function Static

void

 

ReleaseSkinCacheEntry

(
    FGPUSkinCacheEntry* SkinCacheEntry
)

Public function Static

void

 

SetVertexStreams

(
    FGPUSkinCacheEntry* Entry,
    int32 Section,
    FRHICommandList& RHICmdList,
    FShader* Shader,
    const FGPUSkinPassthroughVertexFactory* VertexFactory,
    uint32 BaseVertexIndex,
    FShaderResourceParameter PreviousStreamBuffer
)

Public function

void

 

TransitionAllToReadable

(
    FRHICommandList& RHICmdList
)

Protected function

FRWBuffersAllocation *

 

TryAllocBuffer

(
    uint32 NumVertices,
    bool WithTangnents
)

Classes

Enums

Name

Description

Public enum

ESkinCacheInitSettings

Constants

Name

Description

CVarSink

NUM_BUFFERS

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback