Navigation
API > API/Runtime > API/Runtime/RenderCore
Header portion of shader code archive that's serialized to disk.
The shader codes themselves are stored separately, either with individual buffers (one for each shader group), composite buffers, or a single consecutive buffer (those can become quite large).
| Name | FSerializedShaderArchive |
| Type | class |
| Header File | /Engine/Source/Runtime/RenderCore/Public/ShaderCodeArchive.h |
| Include Path | #include "ShaderCodeArchive.h" |
Syntax
class FSerializedShaderArchive
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FSerializedShaderArchive
(
const FSerializedShaderArchive& |
ShaderCodeArchive.h | ||
| Inline implementations. | ShaderCodeArchive.h | ||
| ShaderCodeArchive.h |
Structs
| Name | Remarks |
|---|---|
| FDebugStats | |
| FExtendedDebugStats | |
| FShaderTypeHashes |
Enums
Public
| Name | Remarks |
|---|---|
| EAssetInfoVersion |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| ECookShaderLibrarySource | ShaderCodeArchive::ECookShaderLibrarySource | ShaderCodeArchive.h | |
| TArrayType | TArray< T > | ShaderCodeArchive.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| PreloadEntries | TArrayType< FFileCachePreloadEntry > | An array of entries for the bytes of shadercode that need to be preloaded for a shadermap. | ShaderCodeArchive.h | |
| ShaderCodeToAssets | TMap< FSHAHash, FShaderMapAssetPaths > | ShaderCodeArchive.h | ||
| ShaderEntries | TArrayType< FShaderCodeEntry > | An array of all shaders descriptors, deduplicated | ShaderCodeArchive.h | |
| ShaderHashes | TArrayType< FShaderHash > | Output hashes of all shaders in the library | ShaderCodeArchive.h | |
| ShaderHashTable | FHashTable | ShaderCodeArchive.h | ||
| ShaderIndices | TArrayType< uint32 > | Flat array of shaders referenced by all shadermaps. | ShaderCodeArchive.h | |
| ShaderMapEntries | TArrayType< FShaderMapEntry > | An array of a shadermap descriptors. Each shadermap can reference an arbitrary number of shaders | ShaderCodeArchive.h | |
| ShaderMapHashes | TArrayType< FShaderHash > | Hashes of all shadermaps in the library | ShaderCodeArchive.h | |
| ShaderMapHashTable | FHashTable | ShaderCodeArchive.h | ||
| ShaderTypes | TArray< FShaderTypeHashes > | Array of all shader type hashes which deduplicated to each individual shader; indexed as ShaderEntries array | ShaderCodeArchive.h |
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| ShaderMapAssetAssociations | FShaderMapAssetAssociations | ShaderCodeArchive.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void CollectStatsAndDebugInfo
(
FDebugStats& OutDebugStats, |
ShaderCodeArchive.h | ||
void CreateAsChunkFrom
(
const FSerializedShaderArchive& Parent, |
ShaderCodeArchive.h | ||
void CreateFromFilteredAssets
(
const FSerializedShaderArchive& Parent, |
ShaderCodeArchive.h | ||
void DecompressShader
(
int32 Index, |
ShaderCodeArchive.h | ||
void DumpContentsInPlaintext
(
FString& OutText |
ShaderCodeArchive.h | ||
void Empty() |
ShaderCodeArchive.h | ||
void EmptyShaderMaps() |
ShaderCodeArchive.h | ||
void Finalize() |
ShaderCodeArchive.h | ||
bool FindOrAddShader
(
const FShaderHash& Hash, |
ShaderCodeArchive.h | ||
bool FindOrAddShaderMap
(
const FShaderHash& Hash, |
ShaderCodeArchive.h | ||
bool FindOrAddShaderMapEditor
(
const FShaderHash& Hash, |
ShaderCodeArchive.h | ||
int32 FindShader
(
const FShaderHash& Hash |
ShaderCodeArchive.h | ||
int32 FindShaderMap
(
const FShaderHash& Hash |
ShaderCodeArchive.h | ||
int32 FindShaderMapWithKey
(
const FShaderHash& Hash, |
ShaderCodeArchive.h | ||
int32 FindShaderWithKey
(
const FShaderHash& Hash, |
ShaderCodeArchive.h | ||
int64 GetAllocatedSize() |
ShaderCodeArchive.h | ||
int32 GetNumShaderMaps() |
ShaderCodeArchive.h | ||
int32 GetNumShaders() |
ShaderCodeArchive.h | ||
const TArrayView< const FFileCachePreloadEntry > GetPreloadEntries() |
ShaderCodeArchive.h | ||
const TArrayView< const FShaderCodeEntry > GetShaderEntries() |
ShaderCodeArchive.h | ||
const TArrayView< const FShaderHash > GetShaderHashes() |
ShaderCodeArchive.h | ||
const TArrayView< const uint32 > GetShaderIndices() |
ShaderCodeArchive.h | ||
| ShaderCodeArchive.h | |||
| ShaderCodeArchive.h | |||
const TArrayView< const FShaderMapEntry > GetShaderMapEntries() |
ShaderCodeArchive.h | ||
const TArrayView< const FShaderHash > GetShaderMapHashes() |
ShaderCodeArchive.h | ||
bool IsEmpty() |
ShaderCodeArchive.h | ||
bool LoadAssetInfo
(
FArchive* Ar, |
ShaderCodeArchive.h | ||
bool LoadAssetInfo
(
const FString& Filename, |
ShaderCodeArchive.h | ||
void RemoveLastAddedShader() |
ShaderCodeArchive.h | ||
void SaveAssetInfo
(
FArchive& Ar |
ShaderCodeArchive.h | ||
void Serialize
(
FArchive& Ar |
ShaderCodeArchive.h | ||
void SortByHashes
(
TArray< FSharedBuffer >& InOutShaderCodeForShaderIndex |
Sorts Shaders and ShaderMaps by their Hash values. Used to make cooked data deterministic. | ShaderCodeArchive.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static void DecompressShaderEntryAndAppend
(
const FShaderCodeEntry& Entry, |
ShaderCodeArchive.h | ||
| ShaderCodeArchive.h | |||
static bool SerializeHeaderVersion
(
FArchive& Ar |
ShaderCodeArchive.h |
Operators
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FSerializedShaderArchive & operator=
(
const FSerializedShaderArchive& |
ShaderCodeArchive.h | ||
| ShaderCodeArchive.h |
See Also
-
FEditorShaderCodeArchive
-
FSerializedShaderArchiveBuffer