UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PipelineFileCache.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Containers/List.h"
9#include "RHI.h"
11
13
17
18#define PIPELINE_CACHE_DEFAULT_ENABLED (!WITH_EDITOR)
19
26#define PSO_COOKONLY_DATA (WITH_EDITOR || IS_PROGRAM)
27
29{
32
33 float DepthBias;
39
41 {
43 SlopeScaleDepthBias = Other.SlopeScaleDepthBias;
44 FillMode = Other.FillMode;
45 CullMode = Other.CullMode;
46 DepthClipMode = Other.DepthClipMode;
47 bAllowMSAA = Other.bAllowMSAA;
48 return *this;
49 }
50
56
58
60 {
61 uint32 KeyHash = (*((uint32*)&Key.DepthBias) ^ *((uint32*)&Key.SlopeScaleDepthBias));
62 KeyHash ^= (Key.FillMode << 8);
63 KeyHash ^= Key.CullMode;
64 KeyHash ^= Key.DepthClipMode == ERasterizerDepthClipMode::DepthClamp ? 0x951f4c3b : 0; // crc32 "DepthClamp"
65 KeyHash ^= Key.bAllowMSAA ? 0x694ea601 : 0; // crc32 "bAllowMSAA"
66 return KeyHash;
67 }
68 RHI_API FString ToString() const;
69 RHI_API void FromString(const FStringView& Src);
70};
71
75
104
106{
108
110 {
112
113 RHI_API FString ToString() const;
115 static FString HeaderLine();
116 RHI_API void FromString(const FStringView& Src);
117 };
119 {
125
130
135
142
144
147
150
153
155
156 RHI_API FString ToString() const;
158 RHI_API static FString HeaderLine();
159 RHI_API bool FromString(const FStringView& Src);
160
161 RHI_API FString ShadersToString() const;
163
164 RHI_API static FString ShaderHeaderLine();
165 RHI_API void ShadersFromString(const FStringView& Src);
166
167 RHI_API FString StateToString() const;
169 RHI_API static FString StateHeaderLine();
170 RHI_API bool StateFromString(const FStringView& Src);
171
174
177 };
206 {
207 Compute = 0,
208 Graphics = 1,
209 RayTracing = 2,
210 };
211
216
217#if PSO_COOKONLY_DATA
218 uint64 UsageMask;
220#endif
221
224
227
229
232
236
237 RHI_API static void SortVertexElements(FVertexDeclarationElementList& VertexElements);
238
239 RHI_API FString CommonToString() const;
240 RHI_API static FString CommonHeaderLine();
241 RHI_API void CommonFromString(const FStringView& Src);
242
244 RHI_API FString ToStringReadable() const;
245
246 // Potential cases for seperating verify logic if requiired: RunTime-Logging, RunTime-UserCaching, RunTime-PreCompile, CommandLet-Cooking
247 RHI_API bool Verify() const;
248};
249
251{
253 : Ar(nullptr)
254 , Hash(0)
256 , bValid(false)
257 {}
258
260 {
261 if(Ar != nullptr)
262 {
263 delete Ar;
264 Ar = nullptr;
265 }
266 }
267
270
273 bool bValid;
274
275 // Note that the contract of IAsyncReadFileHandle and IAsyncReadRequest requires that we delete the ReadRequest before deleting its ParentFileHandle.
276 // We therefore require that ParentFileHandle is declared before ReadRequest, so that the class destructor tears down first ReadRequest then ParentFileHandle.
279};
280
286
288
289/*
290 * User definable Mask Comparsion function:
291 * @param ReferenceMask is the Current Bitmask set via SetGameUsageMask
292 * @param PSOMask is the PSO UsageMask
293 * @return Function should return true if this PSO is to be precompiled or false otherwise
294 */
296
311
313{
314 friend class FPipelineCacheFile;
315public:
316 enum class SaveMode : uint32
317 {
318 Incremental = 0, // Fast(er) approach which saves new entries incrementally at the end of the file, replacing the table-of-contents, but leaves everything else alone.
319 BoundPSOsOnly = 1, // Slower approach which consolidates and saves all PSOs used in this run of the program, removing any entry that wasn't seen, and sorted by the desired sort-mode.
320 };
321
322 enum class PSOOrder : uint32
323 {
324 Default = 0, // Whatever order they are already in.
325 FirstToLatestUsed = 1, // Start with the PSOs with the lowest first-frame used and work toward those with the highest.
326 MostToLeastUsed = 2 // Start with the most often used PSOs working toward the least.
327 };
328
329public:
330
331 RHI_API static void Initialize(uint32 GameVersion);
332 RHI_API static void Shutdown();
333
334 RHI_API static bool LoadPipelineFileCacheInto(FString const& Path, TSet<FPipelineCacheFileFormatPSO>& PSOs);
335 RHI_API static bool SavePipelineFileCacheFrom(uint32 GameVersion, EShaderPlatform Platform, FString const& Path, const TSet<FPipelineCacheFileFormatPSO>& PSOs);
336 RHI_API static bool MergePipelineFileCaches(FString const& PathA, FString const& PathB, FPipelineFileCacheManager::PSOOrder Order, FString const& OutputPath);
337
338 /* Open the pipeline file cache for the specfied name and platform. If successful, the GUID of the game file will be returned in OutGameFileGuid */
339 RHI_API static bool OpenPipelineFileCache(const FString& Key, const FString& CacheName, EShaderPlatform Platform, FGuid& OutGameFileGuid);
340
341 /* Open the user pipeline file cache for the specified name and platform. The user cache is always created even if the file was not present when opened.
342 * Name is the name used when opening the file, the key value for the user cache is held within UserCacheName.
343 * returns true if the file was opened.
344 */
345 RHI_API static bool OpenUserPipelineFileCache(const FString& Key, const FString& CacheName, EShaderPlatform Platform, FGuid& OutGameFileGuid);
346
347 RHI_API static bool SavePipelineFileCache(SaveMode Mode);
348
350
354
355 // true if the named PSOFC is currently open.
356 RHI_API static bool HasPipelineFileCache(const FString& PSOCacheKey);
357
358 UE_DEPRECATED(5.6, "Do not call this function, please instead use the OutStats parameter in CacheGraphicsPSO/CacheComputePSO")
360
361 /*
362 * This PSO has failed compile and is invalid - this cache should not return this invalid PSO from subsequent calls for PreCompile requests.
363 * Note: Not implementated for Compute that has no flag to say it came from this cache - don't want to consume failures that didn't propagate from this cache.
364 */
366
371
376
377 /*
378 * If the delegate is set, broadcasts any new PSOs that were encountered since the last time the delegate was broadcast.
379 * The broadcast is scheduled to be run on the game thread.
380 */
382
385
386 RHI_API static int32 GetTotalPSOCount(const FString& PSOCacheKey);
387
389
393 /* Report additional data about new PSOs to the log. */
395
403 static uint64 GetGameUsageMask() { return GameUsageMask; }
404 static bool IsGameUsageMaskSet() { return GameUsageMaskSet; }
405
406 RHI_API static void PreCompileComplete();
407
408 /*
409 * Enable or disable the logging of new PSOs (PSOs that were needed but not found in the file cache) to console and CSV.
410 */
411 static void SetNewPSOConsoleAndCSVLogging(bool bEnabled) { LogNewPSOsToConsoleAndCSV = bEnabled; }
412private:
413
414 static void RegisterPSOUsageDataUpdateForNextSave(FPSOUsageData& UsageData);
415 static void ClearOSPipelineCache();
416 static bool ShouldEnableFileCache();
417
418 static bool IsBSSEquivalentPSOEntryCached(FPipelineCacheFileFormatPSO const& NewEntry);
419 static bool IsPSOEntryCached(FPipelineCacheFileFormatPSO const& NewEntry, FPSOUsageData* EntryData = nullptr);
420
421 static void LogNewGraphicsPSOToConsoleAndCSV(FPipelineCacheFileFormatPSO& PSO, uint32 PSOHash, bool bWasPSOPrecached);
422 static void LogNewComputePSOToConsoleAndCSV(FPipelineCacheFileFormatPSO& PSO, uint32 PSOHash, bool bWasPSOPrecached);
423 static void LogNewRaytracingPSOToConsole(FPipelineCacheFileFormatPSO& PSO, uint32 PSOHash, bool bIsNonBlockingPSO);
424
425 static FPipelineStateStats* RegisterPSOStatsInternal(class FRWScopeLock& Lock, uint32 RunTimeHash);
426
427private:
428 static FRWLock FileCacheLock;
429
430 // Containers for the multiple bundled PSOFCs
431 // Name to PipelineCacheFile
433 // PipelineCacheFile GUID to Name
434 static TMap<FGuid, FString> GameGuidToCacheKey;
435 // User cache's key within FileCacheMap
436 static FString UserCacheKey;
437 // Helper for retrieving a file cache from the name.
438 static class FPipelineCacheFile* GetPipelineCacheFileFromKey(const FString& PSOCacheKey)
439 {
440 TUniquePtr<FPipelineCacheFile>* FileCacheFound = FileCacheMap.Find(PSOCacheKey);
441 return FileCacheFound ? FileCacheFound->Get() : nullptr;
442 }
443
444 // PSO recording
445 static TMap<uint32, FPSOUsageData> RunTimeToPSOUsage; // Fast check structure - Not saved (External state cache runtime hash to seen usage data)
446 static TMap<uint32, FPSOUsageData> NewPSOUsage; // For mask or engine updates - Merged + Saved (Our internal PSO hash to latest usage data) - temp working scratch, only holds updates since last "save" so is not the authority on state
449 static TMpscQueue<FPipelineCacheFileFormatPSO> NewPSOsToReport; // New PSOs that will be broadcast via a delegate (if bound). Cleared when the delegate is broadcast.
450 static TSet<uint32> NewPSOHashes;
451 static uint32 NumNewPSOs;
452 static PSOOrder RequestedOrder;
453 static bool FileCacheEnabled;
454 static FPipelineStateLoggedEvent PSOLoggedEvent;
455 RHI_API static uint64 GameUsageMask;
456 RHI_API static bool GameUsageMaskSet;
457 static FPSOMaskComparisonFn MaskComparisonFn;
458
459 RHI_API static bool LogNewPSOsToConsoleAndCSV; // Whether to log new PSOs to the log file and CSV.
460};
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
#define DECLARE_STATS_GROUP(GroupDesc, GroupId, GroupCat)
Definition Stats.h:689
#define DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:684
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
void Init()
Definition LockFreeList.h:4
const bool
Definition NetworkReplayStreaming.h:178
RHI_API const uint32 FPipelineCacheFileFormatCurrentVersion
Definition PipelineFileCache.cpp:94
bool(* FPSOMaskComparisonFn)(uint64 ReferenceMask, uint64 PSOMask)
Definition PipelineFileCache.h:295
ERayTracingPipelineCacheFlags
Definition PipelineStateCache.h:40
EPixelFormat
Definition PixelFormat.h:16
EShaderFrequency
Definition RHIDefinitions.h:202
@ SF_RayGen
Definition RHIDefinitions.h:209
@ MaxSimultaneousRenderTargets
Definition RHIDefinitions.h:287
ERasterizerDepthClipMode
Definition RHIDefinitions.h:380
ERenderTargetStoreAction
Definition RHIDefinitions.h:1272
ETextureCreateFlags
Definition RHIDefinitions.h:1091
ERenderTargetLoadAction
Definition RHIDefinitions.h:1253
EPrimitiveType
Definition RHIDefinitions.h:822
EVRSShadingRate
Definition RHIDefinitions.h:860
EShaderPlatform
Definition RHIShaderPlatform.h:11
constexpr uint32 HashCombineFast(uint32 A, uint32 B)
Definition TypeHash.h:74
FRWLock Lock
Definition UnversionedPropertySerialization.cpp:921
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition RHI.h:403
Definition RHIResources.h:4572
Definition PipelineFileCache.cpp:1855
Definition PipelineFileCache.h:313
static RHI_API void Shutdown()
Definition PipelineFileCache.cpp:3282
static void SetNewPSOConsoleAndCSVLogging(bool bEnabled)
Definition PipelineFileCache.h:411
static RHI_API void CacheComputePSO(uint32 RunTimeHash, FRHIComputeShader const *Initializer, bool bWasPSOPrecached, FPipelineStateStats **OutStats=nullptr)
Definition PipelineFileCache.cpp:3634
PSOOrder
Definition PipelineFileCache.h:323
static RHI_API bool LoadPipelineFileCacheInto(FString const &Path, TSet< FPipelineCacheFileFormatPSO > &PSOs)
Definition PipelineFileCache.cpp:4099
static RHI_API bool LogPSODetails()
Definition PipelineFileCache.cpp:3103
static RHI_API FPipelineStateLoggedEvent & OnPipelineStateLogged()
Definition PipelineFileCache.cpp:4094
static bool IsGameUsageMaskSet()
Definition PipelineFileCache.h:404
static RHI_API bool ReportNewPSOs()
Definition PipelineFileCache.cpp:3090
static RHI_API void FetchPSODescriptors(const FString &PSOCacheKey, TDoubleLinkedList< FPipelineCacheFileFormatPSORead * > &LoadedBatch)
Definition PipelineFileCache.cpp:3911
static RHI_API bool SavePipelineFileCache(SaveMode Mode)
Definition PipelineFileCache.cpp:3421
SaveMode
Definition PipelineFileCache.h:317
static uint64 GetGameUsageMask()
Definition PipelineFileCache.h:403
static RHI_API void RegisterPSOCompileFailure(uint32 RunTimeHash, FGraphicsPipelineStateInitializer const &Initializer)
Definition PipelineFileCache.cpp:3810
static RHI_API int32 GetTotalPSOCount(const FString &PSOCacheKey)
Definition PipelineFileCache.cpp:3248
static RHI_API bool IsPipelineFileCacheEnabled()
Definition PipelineFileCache.cpp:3064
static RHI_API uint64 SetGameUsageMaskWithComparison(uint64 GameUsageMask, FPSOMaskComparisonFn InComparisonFnPtr)
Definition PipelineFileCache.cpp:3260
static RHI_API void CacheRayTracingPSO(const FRayTracingPipelineStateInitializer &Initializer, ERayTracingPipelineCacheFlags Flags)
Definition PipelineFileCache.cpp:3716
static RHI_API bool LogPSOtoFileCache()
Definition PipelineFileCache.cpp:3077
static RHI_API bool OpenUserPipelineFileCache(const FString &Key, const FString &CacheName, EShaderPlatform Platform, FGuid &OutGameFileGuid)
Definition PipelineFileCache.cpp:3344
static RHI_API void CloseUserPipelineFileCache()
Definition PipelineFileCache.cpp:3378
static RHI_API void BroadcastNewPSOsDelegate()
Definition PipelineFileCache.cpp:3516
static RHI_API FPipelineStateStats * RegisterPSOStats(uint32 RunTimeHash)
Definition PipelineFileCache.cpp:3853
static RHI_API bool OpenPipelineFileCache(const FString &Key, const FString &CacheName, EShaderPlatform Platform, FGuid &OutGameFileGuid)
Definition PipelineFileCache.cpp:3310
static RHI_API bool MergePipelineFileCaches(FString const &PathA, FString const &PathB, FPipelineFileCacheManager::PSOOrder Order, FString const &OutputPath)
Definition PipelineFileCache.cpp:4229
static RHI_API uint32 NumPSOsLogged()
Definition PipelineFileCache.cpp:4056
static RHI_API void PreCompileComplete()
Definition PipelineFileCache.cpp:3158
static RHI_API bool HasPipelineFileCache(const FString &PSOCacheKey)
Definition PipelineFileCache.cpp:3304
static RHI_API void CacheGraphicsPSO(uint32 RunTimeHash, FGraphicsPipelineStateInitializer const &Initializer, bool bWasPSOPrecached, FPipelineStateStats **OutStats=nullptr)
Definition PipelineFileCache.cpp:3543
static RHI_API void GetOrderedPSOHashes(const FString &PSOCacheKey, TArray< FPipelineCachePSOHeader > &PSOHashes, PSOOrder Order, int64 MinBindCount, TSet< uint32 > const &AlreadyCompiledHashes)
Definition PipelineFileCache.cpp:3894
static RHI_API bool SavePipelineFileCacheFrom(uint32 GameVersion, EShaderPlatform Platform, FString const &Path, const TSet< FPipelineCacheFileFormatPSO > &PSOs)
Definition PipelineFileCache.cpp:4111
Definition RHIResources.h:1018
Definition RHIResources.h:984
Definition RHIShaderBindingLayout.h:72
Definition ScopeRWLock.h:199
Definition RHIResources.h:5023
Definition SecureHash.h:226
Definition List.h:439
Definition EnumAsByte.h:22
Definition UnrealString.h.inl:34
Definition MpscQueue.h:18
Definition SharedPointer.h:692
Definition StringBuilder.h:509
Definition UniquePtr.h:107
Definition CriticalSection.h:14
Definition SceneManagement.h:73
@ false
Definition radaudio_common.h:23
Definition Guid.h:109
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
Definition PipelineFileCache.h:304
FPSOUsageData()
Definition PipelineFileCache.h:305
uint64 UsageMask
Definition PipelineFileCache.h:307
uint16 EngineFlags
Definition PipelineFileCache.h:309
uint32 PSOHash
Definition PipelineFileCache.h:308
FPSOUsageData(uint32 InPSOHash, uint64 InUsageMask, uint16 InEngineFlags)
Definition PipelineFileCache.h:306
Definition PipelineFileCache.h:251
~FPipelineCacheFileFormatPSORead()
Definition PipelineFileCache.h:259
FPipelineCacheFileFormatPSORead()
Definition PipelineFileCache.h:252
FArchive * Ar
Definition PipelineFileCache.h:269
bool bReadCompleted
Definition PipelineFileCache.h:272
TArray< uint8 > Data
Definition PipelineFileCache.h:268
TSharedPtr< class IAsyncReadRequest, ESPMode::ThreadSafe > ReadRequest
Definition PipelineFileCache.h:278
bool bValid
Definition PipelineFileCache.h:273
TSharedPtr< class IAsyncReadFileHandle, ESPMode::ThreadSafe > ParentFileHandle
Definition PipelineFileCache.h:277
uint32 Hash
Definition PipelineFileCache.h:271
Definition PipelineFileCache.h:110
void AddToReadableString(TReadableStringBuilder &OutBuilder) const
Definition PipelineFileCache.cpp:469
FSHAHash ComputeShader
Definition PipelineFileCache.h:111
RHI_API void FromString(const FStringView &Src)
Definition PipelineFileCache.cpp:475
RHI_API FString ToString() const
Definition PipelineFileCache.cpp:464
static FString HeaderLine()
Definition PipelineFileCache.cpp:480
FRHIShaderBindingLayout ShaderBindingLayout
Definition PipelineFileCache.h:183
uint32 DeprecatedMaxPayloadSizeInBytes
Definition PipelineFileCache.h:181
friend uint32 GetTypeHash(const FPipelineFileCacheRayTracingDesc &Desc)
Definition PipelineFileCache.h:193
void AddToReadableString(TReadableStringBuilder &OutBuilder) const
Definition PipelineFileCache.cpp:4424
FString HeaderLine() const
Definition PipelineFileCache.cpp:4380
RHI_API void FromString(const FString &Src)
Definition PipelineFileCache.cpp:4446
FSHAHash ShaderHash
Definition PipelineFileCache.h:180
RHI_API FString ToString() const
Definition PipelineFileCache.cpp:4398
bool operator==(const FPipelineFileCacheRayTracingDesc &Other) const
Definition PipelineFileCache.h:198
EShaderFrequency Frequency
Definition PipelineFileCache.h:182
Definition PipelineFileCache.h:119
RHI_API bool StateFromString(const FStringView &Src)
Definition PipelineFileCache.cpp:714
RHI_API FString ShadersToString() const
Definition PipelineFileCache.cpp:485
uint32 RenderTargetsActive
Definition PipelineFileCache.h:133
static ETextureCreateFlags ReduceRTFlags(ETextureCreateFlags InFlags)
Definition PipelineFileCache.cpp:837
RHI_API void AddShadersToReadableString(TReadableStringBuilder &OutBuilder) const
Definition PipelineFileCache.cpp:500
RHI_API bool FromString(const FStringView &Src)
Definition PipelineFileCache.cpp:919
static RHI_API FString HeaderLine()
Definition PipelineFileCache.cpp:936
FSHAHash FragmentShader
Definition PipelineFileCache.h:121
FSHAHash AmplificationShader
Definition PipelineFileCache.h:124
ERenderTargetLoadAction StencilLoad
Definition PipelineFileCache.h:139
ERenderTargetLoadAction DepthLoad
Definition PipelineFileCache.h:138
FSHAHash MeshShader
Definition PipelineFileCache.h:123
FPipelineFileCacheRasterizerState RasterizerState
Definition PipelineFileCache.h:128
EPixelFormat RenderTargetFormats[MaxSimultaneousRenderTargets]
Definition PipelineFileCache.h:131
static RHI_API FString ShaderHeaderLine()
Definition PipelineFileCache.cpp:548
FVertexDeclarationElementList VertexDescriptor
Definition PipelineFileCache.h:126
RHI_API FString StateToString() const
Definition PipelineFileCache.cpp:553
static ETextureCreateFlags ReduceDSFlags(ETextureCreateFlags InFlags)
Definition PipelineFileCache.cpp:844
uint32 MSAASamples
Definition PipelineFileCache.h:134
uint8 SubpassHint
Definition PipelineFileCache.h:145
bool bHasFragmentDensityAttachment
Definition PipelineFileCache.h:149
ETextureCreateFlags DepthStencilFlags
Definition PipelineFileCache.h:137
FSHAHash VertexShader
Definition PipelineFileCache.h:120
FSHAHash GeometryShader
Definition PipelineFileCache.h:122
FDepthStencilStateInitializerRHI DepthStencilState
Definition PipelineFileCache.h:129
uint8 MultiViewCount
Definition PipelineFileCache.h:148
static RHI_API FString StateHeaderLine()
Definition PipelineFileCache.cpp:849
FBlendStateInitializerRHI BlendState
Definition PipelineFileCache.h:127
ETextureCreateFlags RenderTargetFlags[MaxSimultaneousRenderTargets]
Definition PipelineFileCache.h:132
uint8 SubpassIndex
Definition PipelineFileCache.h:146
RHI_API void AddStateToReadableString(TReadableStringBuilder &OutBuilder) const
Definition PipelineFileCache.cpp:630
RHI_API FString ToString() const
Definition PipelineFileCache.cpp:906
ERenderTargetStoreAction DepthStore
Definition PipelineFileCache.h:140
EVRSShadingRate ShadingRate
Definition PipelineFileCache.h:152
ERenderTargetStoreAction StencilStore
Definition PipelineFileCache.h:141
EPrimitiveType PrimitiveType
Definition PipelineFileCache.h:143
bool bDepthBounds
Definition PipelineFileCache.h:154
RHI_API void AddToReadableString(TReadableStringBuilder &OutBuilder) const
Definition PipelineFileCache.cpp:911
RHI_API void ShadersFromString(const FStringView &Src)
Definition PipelineFileCache.cpp:529
EPixelFormat DepthStencilFormat
Definition PipelineFileCache.h:136
bool bAllowVariableRateShading
Definition PipelineFileCache.h:151
Definition PipelineFileCache.h:106
RHI_API ~FPipelineCacheFileFormatPSO()
Definition PipelineFileCache.cpp:1577
FPipelineFileCacheRayTracingDesc RayTracingDesc
Definition PipelineFileCache.h:215
RHI_API FPipelineCacheFileFormatPSO & operator=(const FPipelineCacheFileFormatPSO &Other)
Definition PipelineFileCache.cpp:1684
RHI_API void CommonFromString(const FStringView &Src)
Definition PipelineFileCache.cpp:994
RHI_API FString ToStringReadable() const
Definition PipelineFileCache.cpp:958
RHI_API bool Verify() const
Definition PipelineFileCache.cpp:1012
static RHI_API void SortVertexElements(FVertexDeclarationElementList &VertexElements)
Definition PipelineFileCache.cpp:1545
RHI_API FPipelineCacheFileFormatPSO()
Definition PipelineFileCache.cpp:1405
DescriptorType Type
Definition PipelineFileCache.h:212
friend RHI_API uint32 GetTypeHash(const FPipelineCacheFileFormatPSO &Key)
Definition PipelineFileCache.cpp:1133
GraphicsDescriptor GraphicsDesc
Definition PipelineFileCache.h:214
friend RHI_API FArchive & operator<<(FArchive &Ar, FPipelineCacheFileFormatPSO &Info)
Definition PipelineFileCache.cpp:1231
RHI_API FString CommonToString() const
Definition PipelineFileCache.cpp:947
RHI_API bool operator==(const FPipelineCacheFileFormatPSO &Other) const
Definition PipelineFileCache.cpp:1582
ComputeDescriptor ComputeDesc
Definition PipelineFileCache.h:213
DescriptorType
Definition PipelineFileCache.h:206
static RHI_API FString CommonHeaderLine()
Definition PipelineFileCache.cpp:942
Definition PipelineFileCache.h:282
uint32 Hash
Definition PipelineFileCache.h:284
TSet< FSHAHash > Shaders
Definition PipelineFileCache.h:283
Definition PipelineFileCache.h:29
float SlopeScaleDepthBias
Definition PipelineFileCache.h:34
TEnumAsByte< ERasterizerCullMode > CullMode
Definition PipelineFileCache.h:36
FPipelineFileCacheRasterizerState()
Definition PipelineFileCache.h:30
friend uint32 GetTypeHash(const FPipelineFileCacheRasterizerState &Key)
Definition PipelineFileCache.h:59
FPipelineFileCacheRasterizerState & operator=(FRasterizerStateInitializerRHI const &Other)
Definition PipelineFileCache.h:40
bool bAllowMSAA
Definition PipelineFileCache.h:38
float DepthBias
Definition PipelineFileCache.h:33
RHI_API FString ToString() const
Definition PipelineFileCache.cpp:431
RHI_API void FromString(const FStringView &Src)
Definition PipelineFileCache.cpp:443
friend RHI_API FArchive & operator<<(FArchive &Ar, FPipelineFileCacheRasterizerState &RasterizerStateInitializer)
Definition PipelineFileCache.cpp:414
FPipelineFileCacheRasterizerState(FRasterizerStateInitializerRHI const &Other)
Definition PipelineFileCache.h:31
ERasterizerDepthClipMode DepthClipMode
Definition PipelineFileCache.h:37
TEnumAsByte< ERasterizerFillMode > FillMode
Definition PipelineFileCache.h:35
Definition PipelineFileCache.h:80
~FPipelineStateStats()
Definition PipelineFileCache.h:90
int64 FirstFrameUsed
Definition PipelineFileCache.h:98
FPipelineStateStats()
Definition PipelineFileCache.h:81
static RHI_API void UpdateStats(FPipelineStateStats *Stats)
Definition PipelineFileCache.cpp:244
int64 LastFrameUsed
Definition PipelineFileCache.h:99
friend FArchive & operator<<(FArchive &Ar, FPipelineStateStats &Info)
Definition PipelineFileCache.cpp:282
uint64 CreateCount
Definition PipelineFileCache.h:100
int64 TotalBindCount
Definition PipelineFileCache.h:101
uint32 PSOHash
Definition PipelineFileCache.h:102
Definition RHI.h:278