UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MetalShaderParameterCache.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 MetalShaderParameterCache.h: Metal RHI Shader Parameter Cache Class.
5=============================================================================*/
6
7#pragma once
8
10#include "MetalRHIPrivate.h"
11
14
16{
17public:
20
23
25 {
26 if (PackedGlobalUniformsSizes[TypeIndex] < UniformArraySize)
27 {
28 ResizeGlobalUniforms(TypeIndex, UniformArraySize);
29 }
30 }
31
35 void Reset();
36
40 void MarkAllDirty();
41
45 void Set(uint32 BufferIndex, uint32 ByteOffset, uint32 NumBytes, const void* NewValues);
46
50 void CommitPackedGlobals(class FMetalStateCache* Cache, class FMetalCommandEncoder* Encoder, uint32 Frequency, const FMetalShaderBindings& Bindings);
51
52private:
53 static constexpr uint32 SizeOfFloat = sizeof(float);
54
57
58 struct FRange
59 {
60 uint32 LowVector;
61 uint32 HighVector;
62 };
63
65 FRange PackedGlobalUniformDirty[CrossCompiler::PACKED_TYPEINDEX_MAX];
66
67 uint32 PackedGlobalUniformsSizes[CrossCompiler::PACKED_TYPEINDEX_MAX];
68
69 void ResizeGlobalUniforms(uint32 TypeIndex, uint32 UniformArraySize);
70};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition MetalResources.h:355
Definition MetalCommandEncoder.h:149
Definition MetalShaderParameterCache.h:16
void PrepareGlobalUniforms(uint32 TypeIndex, uint32 UniformArraySize)
Definition MetalShaderParameterCache.h:24
void Reset()
Definition MetalShaderParameterCache.cpp:59
FMetalShaderParameterCache()
Definition MetalShaderParameterCache.cpp:20
void MarkAllDirty()
Definition MetalShaderParameterCache.cpp:68
~FMetalShaderParameterCache()
Definition MetalShaderParameterCache.cpp:48
void CommitPackedGlobals(class FMetalStateCache *Cache, class FMetalCommandEncoder *Encoder, uint32 Frequency, const FMetalShaderBindings &Bindings)
Definition MetalShaderParameterCache.cpp:91
Definition MetalStateCache.h:45
@ PACKED_TYPEINDEX_MAX
Definition CrossCompilerCommon.h:72
Definition MetalShaderResources.h:97