UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MetalShaderResources.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 MetalShaderResources.h: Metal shader resource RHI definitions.
5=============================================================================*/
6
7#pragma once
8
10
15{
16 Unknown =0,
17
18 R8Sint =1,
19 R8Uint =2,
20 R8Snorm =3,
21 R8Unorm =4,
22
23 R16Sint =5,
24 R16Uint =6,
25 R16Snorm =7,
26 R16Unorm =8,
27 R16Half =9,
28
29 R32Sint =10,
30 R32Uint =11,
31 R32Float =12,
32
33 RG8Sint =13,
34 RG8Uint =14,
35 RG8Snorm =15,
36 RG8Unorm =16,
37
38 RG16Sint =17,
39 RG16Uint =18,
40 RG16Snorm =19,
41 RG16Unorm =20,
42 RG16Half =21,
43
44 RG32Sint =22,
45 RG32Uint =23,
46 RG32Float =24,
47
48 RGB8Sint =25,
49 RGB8Uint =26,
50 RGB8Snorm =27,
51 RGB8Unorm =28,
52
53 RGB16Sint =29,
54 RGB16Uint =30,
55 RGB16Snorm =31,
56 RGB16Unorm =32,
57 RGB16Half =33,
58
59 RGB32Sint =34,
60 RGB32Uint =35,
61 RGB32Float =36,
62
63 RGBA8Sint =37,
64 RGBA8Uint =38,
65 RGBA8Snorm =39,
66 RGBA8Unorm =40,
67
68 BGRA8Unorm =41,
69
70 RGBA16Sint =42,
71 RGBA16Uint =43,
72 RGBA16Snorm =44,
73 RGBA16Unorm =45,
74 RGBA16Half =46,
75
76 RGBA32Sint =47,
77 RGBA32Uint =48,
78 RGBA32Float =49,
79
80 RGB10A2Unorm =50,
81
82 RG11B10Half =51,
83
84 R5G6B5Unorm =52,
85 B5G5R5A1Unorm =53,
86
87 Max =54
88};
89
91{
92 PixelDiscard = 1 << 0,
94};
95
115
117{
118 Ar << PackedGlobalArrays;
119 Ar << SRT;
120 Ar << ConstantBuffers;
121 Ar << InOutMask;
122 Ar << ArgumentBuffers;
123 if (ArgumentBuffers)
124 {
126 }
127 Ar << NumSamplers;
128 Ar << NumUniformBuffers;
129 Ar << NumUAVs;
130 Ar << Flags;
132 {
134 Ar << RSNumCBVs;
135 Ar << OutputSizeVS;
137 }
138 return Ar;
139}
140
142{
143 Clockwise = 0,
145};
146
148{
149 Pow2 = 0,
150 Integer = 1,
151 FractionalOdd = 2,
152 FractionalEven = 3,
153};
154
156{
157 Uint = 0,
158 Int,
159 Half,
160 Float,
161 Bool,
162 Max
163};
164
166{
168
169 bool IsValid() const
170 {
172 }
173
179
181 {
182 Ar << Header.InstanceIndexBuffer;
183 return Ar;
184 }
185};
186
188{
194
196 : Index(0)
197 , Components(0)
198 , Offset(0)
200 , Semantic(0)
201 {
202
203 }
204
206 {
207 Ar << Attr.Index;
208 Ar << Attr.Type;
209 Ar << Attr.Components;
210 Ar << Attr.Offset;
211 Ar << Attr.Semantic;
212 return Ar;
213 }
214};
215
248
249
251{
253
254 Ar << SourceLen;
255 Ar << SourceCRC;
256 Ar << Version;
257 Ar << Frequency;
259 {
260 Ar << NumThreadsX;
261 Ar << NumThreadsY;
262 Ar << NumThreadsZ;
263 Ar << RayTracing;
264 }
265 Ar << CompileFlags;
266 Ar << SideTable;
268
269 return Ar;
270}
271
273{
274 FString Format;
277
279 {
280 return Ar << Header.Format << Header.NumLibraries << Header.NumShadersPerLibrary;
281 }
282};
FPlatformTypes::int8 int8
An 8-bit signed integer.
Definition Platform.h:1121
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
EMetalComponentType
Definition MetalShaderResources.h:156
EMetalOutputWindingMode
Definition MetalShaderResources.h:142
EMetalBufferFormat
Definition MetalShaderResources.h:15
EMetalBindingsFlags
Definition MetalShaderResources.h:91
EMetalPartitionMode
Definition MetalShaderResources.h:148
EShaderFrequency
Definition RHIDefinitions.h:202
@ SF_Compute
Definition RHIDefinitions.h:208
bool IsRayTracingShaderFrequency(EShaderFrequency Frequency)
Definition RHIDefinitions.h:1679
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition Array.h:670
Definition UnrealString.h.inl:34
U16 Index
Definition radfft.cpp:71
Definition CrossCompilerCommon.h:194
Definition MetalShaderResources.h:188
FMetalAttribute()
Definition MetalShaderResources.h:195
uint32 Offset
Definition MetalShaderResources.h:191
uint32 Components
Definition MetalShaderResources.h:190
friend FArchive & operator<<(FArchive &Ar, FMetalAttribute &Attr)
Definition MetalShaderResources.h:205
uint32 Semantic
Definition MetalShaderResources.h:193
uint32 Index
Definition MetalShaderResources.h:189
EMetalComponentType Type
Definition MetalShaderResources.h:192
Definition MetalShaderResources.h:217
FArchive & Serialize(FArchive &Ar, FShaderResourceTable &SRT)
Definition MetalShaderResources.h:250
uint8 Frequency
Definition MetalShaderResources.h:228
uint32 CompileFlags
Definition MetalShaderResources.h:226
uint32 NumThreadsY
Definition MetalShaderResources.h:224
uint32 SourceLen
Definition MetalShaderResources.h:220
uint32 NumThreadsZ
Definition MetalShaderResources.h:225
uint8 bDeviceFunctionConstants
Definition MetalShaderResources.h:230
FMetalRayTracingHeader RayTracing
Definition MetalShaderResources.h:227
uint32 NumThreadsX
Definition MetalShaderResources.h:223
uint32 Version
Definition MetalShaderResources.h:222
FMetalShaderBindings Bindings
Definition MetalShaderResources.h:218
uint32 SourceCRC
Definition MetalShaderResources.h:221
FMetalCodeHeader()
Definition MetalShaderResources.h:232
int8 SideTable
Definition MetalShaderResources.h:229
Definition MetalShaderResources.h:166
FMetalRayTracingHeader()
Definition MetalShaderResources.h:174
uint32 InstanceIndexBuffer
Definition MetalShaderResources.h:167
friend FArchive & operator<<(FArchive &Ar, FMetalRayTracingHeader &Header)
Definition MetalShaderResources.h:180
bool IsValid() const
Definition MetalShaderResources.h:169
Definition MetalShaderResources.h:97
uint32 RSNumCBVs
Definition MetalShaderResources.h:102
FArchive & Serialize(FArchive &Ar, FShaderResourceTable &SRT)
Definition MetalShaderResources.h:116
TArray< CrossCompiler::FPackedArrayInfo > PackedGlobalArrays
Definition MetalShaderResources.h:98
FString IRConverterReflectionJSON
Definition MetalShaderResources.h:101
uint8 NumUAVs
Definition MetalShaderResources.h:110
TMap< uint8, TArray< uint8 > > ArgumentBufferMasks
Definition MetalShaderResources.h:99
uint32 ConstantBuffers
Definition MetalShaderResources.h:106
uint8 NumSamplers
Definition MetalShaderResources.h:108
uint32 ArgumentBuffers
Definition MetalShaderResources.h:107
uint32 MaxInputPrimitivesPerMeshThreadgroupGS
Definition MetalShaderResources.h:104
uint32 OutputSizeVS
Definition MetalShaderResources.h:103
CrossCompiler::FShaderBindingInOutMask InOutMask
Definition MetalShaderResources.h:100
uint8 NumUniformBuffers
Definition MetalShaderResources.h:109
EMetalBindingsFlags Flags
Definition MetalShaderResources.h:111
Definition MetalShaderResources.h:273
uint32 NumShadersPerLibrary
Definition MetalShaderResources.h:276
uint32 NumLibraries
Definition MetalShaderResources.h:275
FString Format
Definition MetalShaderResources.h:274
friend FArchive & operator<<(FArchive &Ar, FMetalShaderLibraryHeader &Header)
Definition MetalShaderResources.h:278
Definition RHIResources.h:755