UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RenderGraphResources.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
10#include "PixelFormat.h"
11#include "RHI.h"
12#include "RHIDefinitions.h"
13#include "RHIResources.h"
19#include "RendererInterface.h"
21#include "Templates/Function.h"
23#include "Templates/TypeHash.h"
25
28class FRDGBuffer;
29class FRDGBufferPool;
30class FRDGBuilder;
31class FRDGResourceDumpContext;
32class FRDGTextureUAV;
33class FRDGTrace;
40
50
57{
60
63};
64
66
126
128
131{
132public:
133 FRDGResource(const FRDGResource&) = delete;
134 virtual ~FRDGResource() = default;
135
136 // Name of the resource for debugging purpose.
137 const TCHAR* const Name = nullptr;
138
141
143#if RDG_ENABLE_DEBUG
145#else
146 inline void MarkResourceAsUsed() {}
147#endif
148
150 {
152 return ResourceRHI;
153 }
154
156
157protected:
158 FRDGResource(const TCHAR* InName)
159 : Name(InName)
161 , bAllowRHIAccess(0)
162#endif
163 {}
164
166 {
167 return ResourceRHI;
168 }
169
170 bool HasRHI() const
171 {
172 return ResourceRHI != nullptr;
173 }
174
176
177#if RDG_ENABLE_DEBUG
179#endif
180
181private:
182#if RDG_ENABLE_DEBUG
183 uint8 bAllowRHIAccess : 1;
184#endif
185
186 friend FRDGBuilder;
187 friend FRDGUserValidation;
189};
190
192 : public FRDGResource
193{
194public:
195
197
198 inline const FRDGParameterStruct& GetParameters() const
199 {
200 return ParameterStruct;
201 }
202
203 inline const TCHAR* GetLayoutName() const
204 {
205 return *ParameterStruct.GetLayout().GetDebugName();
206 }
207
208#if RDG_ENABLE_DEBUG
210#else
211 inline void MarkResourceAsUsed() {}
212#endif
213
216
218 {
219 return static_cast<FRHIUniformBuffer*>(FRDGResource::GetRHI());
220 }
221
223
224protected:
225 template <typename TParameterStruct>
226 explicit FRDGUniformBuffer(const TParameterStruct* InParameters, const TCHAR* InName)
227 : FRDGResource(InName)
228 , ParameterStruct(InParameters, TParameterStruct::FTypeInfo::GetStructMetadata())
229 {}
230
231private:
232 FRHIUniformBuffer* GetRHIUnchecked() const
233 {
234 return static_cast<FRHIUniformBuffer*>(FRDGResource::GetRHIUnchecked());
235 }
236
237 RENDERCORE_API void InitRHI();
238
239 const FRDGParameterStruct ParameterStruct;
240 TRefCountPtr<FRHIUniformBuffer> UniformBufferRHI;
242 bool bExternal = false;
243
244 friend FRDGBuilder;
246 friend FRDGAllocator;
247};
248
249template <typename ParameterStructType>
251{
252public:
253 virtual ~TRDGUniformBuffer() {};
254
259
260 inline const ParameterStructType* GetContents() const
261 {
262 return Parameters;
263 }
264
269
270 inline const ParameterStructType* operator->() const
271 {
272 return Parameters;
273 }
274
275private:
276 explicit TRDGUniformBuffer(const ParameterStructType* InParameters, const TCHAR* InName)
278 , Parameters(InParameters)
279 {}
280
281 const ParameterStructType* Parameters;
282
283 friend FRDGBuilder;
285 friend FRDGAllocator;
286};
287
290 : public FRDGResource
291{
292public:
293#if RHI_USE_RESOURCE_DEBUG_NAME
294 virtual ~FRDGViewableResource()
295 {
297 {
298 delete[] Name;
299 }
300 }
301#endif
302
305
307 bool IsExternal() const
308 {
309 return bExternal;
310 }
311
313 bool IsExtracted() const
314 {
315 return bExtracted;
316 }
317
321 bool HasBeenProduced() const
322 {
323 return bProduced;
324 }
325
327 {
328#if RHI_ENABLE_RESOURCE_INFO
329 OwnerName = InOwnerName;
330#endif
331 }
332
333#if RHI_USE_RESOURCE_DEBUG_NAME
334 inline void SetDebugNameIsHeapAllocated()
335 {
337 }
338#endif
339
340 inline bool IsDebugNameHeapAllocated() const
341 {
342#if RHI_USE_RESOURCE_DEBUG_NAME
344#else
345 return false;
346#endif
347 }
348
349protected:
351
352 bool IsCullRoot() const
353 {
354 return bExternal || bExtracted;
355 }
356
358
360 {
361 None,
362 Disable,
363 Enable
364 };
365
366 enum class EAccessMode : uint8
367 {
368 Internal,
370 };
371
374
377
380
383
386
389
392
395
398
399#if RHI_USE_RESOURCE_DEBUG_NAME
402#endif
403
404#if RDG_ENABLE_DEBUG
406#endif
407
410
432
437
440
443
446
449
450private:
451 static const uint32 DeallocatedReferenceCount = ~0;
452
453 void SetRHI(FRHIResource* Resource)
454 {
456 ResourceRHI = Resource;
457
458 #if RHI_ENABLE_RESOURCE_INFO
459 ResourceRHI->SetOwnerName(OwnerName);
460 #endif
461 }
462
463 void SetExternalAccessMode(ERHIAccess InAccess, ERHIPipeline InPipelines)
464 {
466
470
472 }
473
474#if RHI_ENABLE_RESOURCE_INFO
475 FName OwnerName; // For RHI resource tracking
476#endif
477
478#if RDG_ENABLE_TRACE
480 uint32 TraceOrder = 0;
481#endif
482
484
485 friend FRDGBuilder;
486 friend FRDGUserValidation;
488 friend FRDGResourceDumpContext;
489 friend FRDGTrace;
490 friend FRDGPass;
491};
492
495 : public FRDGResource
496{
497public:
500
502 virtual FRDGViewableResource* GetParent() const = 0;
503
505 {
506 return ::GetParentType(Type);
507 }
508
510 {
511 return Handle;
512 }
513
514protected:
519
520private:
521 FRDGViewHandle Handle;
522 FRDGPassHandle LastPass;
523
524 friend FRDGBuilder;
525 friend FRDGViewRegistry;
526 friend FRDGAllocator;
527};
528
531
534
536 : public FRefCountBase
537{
538public:
540 : Texture(InTexture)
541 {
542 Fences.Emplace();
543 }
544
546 inline FRHIUnorderedAccessView* GetOrCreateUAV(FRHICommandListBase& RHICmdList, const FRHITextureUAVCreateInfo& UAVDesc) { return ViewCache.GetOrCreateUAV(RHICmdList, Texture, UAVDesc); }
547
549 inline FRHIShaderResourceView* GetOrCreateSRV(FRHICommandListBase& RHICmdList, const FRHITextureSRVCreateInfo& SRVDesc) { return ViewCache.GetOrCreateSRV(RHICmdList, Texture, SRVDesc); }
550
551 UE_DEPRECATED(5.3, "GetOrCreateUAV now requires a command list.")
553
554 UE_DEPRECATED(5.3, "GetOrCreateSRV now requires a command list.")
556
557 inline FRHITexture* GetRHI() const { return Texture; }
558
559private:
561 FRHITextureViewCache ViewCache;
563
564 friend FRDGBuilder;
565 friend FRenderTargetPool;
566};
567
569class FRDGTexture final
570 : public FRDGViewableResource
571{
572public:
574
577
580
582 inline FRHITexture* GetRHI() const
583 {
584 return static_cast<FRHITexture*>(FRDGResource::GetRHI());
585 }
586
588
590 {
591 return Handle;
592 }
593
595 {
596 return Layout;
597 }
598
600 {
601 return WholeRange;
602 }
603
605 {
606 return SubresourceCount;
607 }
608
613
615
616 bool IsCulled() const
617 {
618 return ReferenceCount == 0;
619 }
620
621private:
623
625 FRHITexture* GetRHIUnchecked() const
626 {
627 return static_cast<FRHITexture*>(FRDGResource::GetRHIUnchecked());
628 }
629
631 FRDGTextureHandle Handle;
632
634 FRDGTextureHandle PreviousOwner;
635 FRDGTextureHandle NextOwner;
636
640 const uint16 SubresourceCount;
641
644
647
650
653
655 IPooledRenderTarget* RenderTarget = nullptr;
656
658 FRHITransientTexture* TransientTexture = nullptr;
659
661 FRHITextureViewCache* ViewCache = nullptr;
662
665
666#if SUPPORTS_VISUALIZE_TEXTURE
668public:
669 inline void EncloseVisualizeExtent(const FIntPoint& Point)
670 {
673 }
674 inline FIntPoint GetVisualizeExtent() const
675 {
677 }
678private:
679#else
680public:
682private:
683#endif
684
685 friend FRDGBuilder;
686 friend FRDGUserValidation;
688 friend FRDGTextureRegistry;
689 friend FRDGAllocator;
690 friend FPooledRenderTarget;
691 friend FRDGTrace;
692 friend FRDGTextureUAV;
693};
694
697 : public FRDGView
698{
699public:
702 {
703 return static_cast<FRHIShaderResourceView*>(FRDGResource::GetRHI());
704 }
705
706protected:
708 : FRDGView(InName, InType)
709 {}
710
716};
717
720 : public FRDGView
721{
722public:
724
727 {
728 return static_cast<FRHIUnorderedAccessView*>(FRDGResource::GetRHI());
729 }
730
731protected:
736
742};
743
747{
748public:
750
752 {
755 if (InTexture->Desc.IsTextureArray())
756 {
757 NumArraySlices = InTexture->Desc.ArraySize;
758 }
759 }
760
766
776
779 {
780 check(Texture);
782 check(SliceIndex >= 0 && SliceIndex < Texture->Desc.ArraySize);
783
785 Desc.FirstArraySlice = (uint16)SliceIndex;
786 Desc.NumArraySlices = 1;
788
789 return Desc;
790 }
791
794 {
796 Desc.Format = PixelFormat;
797 return Desc;
798 }
799
807
809 {
811 }
812
814 {
815 return !(*this == Other);
816 }
817
819 {
820 return HashCombine(GetTypeHash(static_cast<const FRHITextureSRVCreateInfo&>(Desc)), GetTypeHash(Desc.Texture));
821 }
822
824 bool IsValid() const
825 {
826 if (!Texture)
827 {
828 return false;
829 }
830 return FRHITextureSRVCreateInfo::Validate(Texture->Desc, *this, Texture->Name, /* bFatal = */ false);
831 }
832
834};
835
837class FRDGTextureSRV final
839{
840public:
842
845
846 FRDGTextureRef GetParent() const override
847 {
848 return Desc.Texture;
849 }
850
852
853private:
854 FRDGTextureSRV(const TCHAR* InName, const FRDGTextureSRVDesc& InDesc)
856 , Desc(InDesc)
857 {}
858
859 friend FRDGBuilder;
860 friend FRDGViewRegistry;
861 friend FRDGAllocator;
862};
863
901
903class FRDGTextureUAV final
905{
906public:
908
911
912 FRDGTextureRef GetParent() const override
913 {
914 return Desc.Texture;
915 }
916
917 // Can be used instead of GetParent()->GetRHI() to access the underlying texture for a UAV resource in a Pass, without triggering
918 // validation errors. The RDG validation logic only flags the UAV as accessible, not the parent texture.
920 {
922 return Desc.Texture->GetRHIUnchecked();
923 }
924
926
927private:
930 , Desc(InDesc)
931 {}
932
933 friend FRDGBuilder;
934 friend FRDGViewRegistry;
935 friend FRDGAllocator;
936};
937
940{
950
951 template<typename ParameterStruct>
953 {
954 FRDGBufferDesc Desc = CreateByteAddressDesc(sizeof(ParameterStruct) * NumElements);
955 Desc.Metadata = ParameterStruct::FTypeInfo::GetStructMetadata();
956 return Desc;
957 }
958
967
969 {
970 FRDGBufferDesc Desc = CreateByteAddressDesc(NumBytes);
972 return Desc;
973 }
974
982 template<typename IndirectParameterStruct>
987
992
1001
1002 template<typename ParameterStruct>
1004 {
1005 FRDGBufferDesc Desc = CreateStructuredDesc(sizeof(ParameterStruct), NumElements);
1006 Desc.Metadata = ParameterStruct::FTypeInfo::GetStructMetadata();
1007 return Desc;
1008 }
1009
1018
1019 template<typename ParameterStruct>
1021 {
1022 FRDGBufferDesc Desc = CreateBufferDesc(sizeof(ParameterStruct), NumElements);
1023 Desc.Metadata = ParameterStruct::FTypeInfo::GetStructMetadata();
1024 return Desc;
1025 }
1026
1035
1036 template<typename ParameterStruct>
1038 {
1039 FRDGBufferDesc Desc = CreateUploadDesc(sizeof(ParameterStruct), NumElements);
1040 Desc.Metadata = ParameterStruct::FTypeInfo::GetStructMetadata();
1041 return Desc;
1042 }
1043
1052
1053 template<typename ParameterStruct>
1055 {
1056 FRDGBufferDesc Desc = CreateStructuredUploadDesc(sizeof(ParameterStruct), NumElements);
1057 Desc.Metadata = ParameterStruct::FTypeInfo::GetStructMetadata();
1058 return Desc;
1059 }
1060
1062 {
1063 check(NumBytes % 4 == 0);
1064 FRDGBufferDesc Desc;
1066 Desc.BytesPerElement = 4;
1067 Desc.NumElements = NumBytes / 4;
1068 return Desc;
1069 }
1070
1071 template<typename ParameterStruct>
1073 {
1074 FRDGBufferDesc Desc = CreateByteAddressUploadDesc(sizeof(ParameterStruct) * NumElements);
1075 Desc.Metadata = ParameterStruct::FTypeInfo::GetStructMetadata();
1076 return Desc;
1077 }
1078
1081 {
1083 }
1084
1086 {
1091 return Hash;
1092 }
1093
1095 {
1096 return
1097 BytesPerElement == Other.BytesPerElement &&
1098 NumElements == Other.NumElements &&
1099 Usage == Other.Usage;
1100 }
1101
1103 {
1104 return !(*this == Other);
1105 }
1106
1109
1112
1115
1118};
1119
1160
1163{
1165
1167
1172
1174 {
1176 }
1177
1179 {
1180 return !(*this == Other);
1181 }
1182
1184 {
1185 return HashCombine(GetTypeHash(static_cast<const FRHIBufferUAVCreateInfo&>(Desc)), GetTypeHash(Desc.Buffer));
1186 }
1187
1189};
1190
1193
1195 : public FRefCountBase
1196{
1197public:
1199 : Desc(InDesc)
1200 , Buffer(MoveTemp(InBuffer))
1201 , Name(InName)
1202 , NumAllocatedElements(InNumAllocatedElements)
1203 {
1205 {
1206 CachedSRV = GetOrCreateSRV(RHICmdList, FRHIBufferSRVCreateInfo());
1207 }
1208
1209 Fences.Emplace();
1210 }
1211
1213
1215
1217 inline FRHIUnorderedAccessView* GetOrCreateUAV(FRHICommandListBase& RHICmdList, const FRHIBufferUAVCreateInfo& UAVDesc) { return ViewCache.GetOrCreateUAV(RHICmdList, Buffer, UAVDesc); }
1218
1220 inline FRHIShaderResourceView* GetOrCreateSRV(FRHICommandListBase& RHICmdList, const FRHIBufferSRVCreateInfo& SRVDesc) { return ViewCache.GetOrCreateSRV(RHICmdList, Buffer, SRVDesc); }
1221
1222 UE_DEPRECATED(5.3, "GetOrCreateUAV now requires a command list.")
1224
1225 UE_DEPRECATED(5.3, "GetOrCreateSRV now requires a command list.")
1227
1229 inline FRHIBuffer* GetRHI() const { return Buffer; }
1230
1233 {
1234 checkf(CachedSRV, TEXT("Only byte address and structured buffers can use the default GetSRV call"));
1235 return CachedSRV;
1236 }
1237
1238 UE_DEPRECATED(5.3, "GetSRV now requires a command list.")
1243
1245 {
1246 return GetOrCreateSRV(RHICmdList, SRVDesc);
1247 }
1248
1249 inline uint32 GetSize() const
1250 {
1251 return Desc.GetSize();
1252 }
1253
1254 inline uint32 GetAlignedSize() const
1255 {
1256 return Desc.BytesPerElement * NumAllocatedElements;
1257 }
1258
1260 {
1261 return FMath::Min<uint64>(CommittedSizeInBytes, GetSize());
1262 }
1263
1264 const TCHAR* GetName() const
1265 {
1266 return Name;
1267 }
1268
1269private:
1271 FRHIShaderResourceView* CachedSRV = nullptr;
1272 FRHIBufferViewCache ViewCache;
1273
1274 FRDGBufferDesc GetAlignedDesc() const
1275 {
1277 AlignedDesc.NumElements = NumAllocatedElements;
1278 return AlignedDesc;
1279 }
1280
1281 void SetDebugLabelName(FRHICommandListBase& RHICmdList, const TCHAR* InName);
1282
1283 // Used internally by FRDGBuilder::QueueCommitReservedBuffer(),
1284 // which is expected to be the only way to resize physical memory for FRDGPooledBuffer
1285 void SetCommittedSize(uint64 InCommittedSizeInBytes)
1286 {
1288 {
1290 }
1291
1292 checkf(EnumHasAllFlags(Desc.Usage, EBufferUsageFlags::ReservedResource), TEXT("CommitReservedResource() may only be used on reserved buffers"));
1293 checkf(InCommittedSizeInBytes <= GetSize(), TEXT("Attempting to commit more memory than was reserved for this buffer during creation"));
1294
1295 CommittedSizeInBytes = InCommittedSizeInBytes;
1296 }
1297
1298 const TCHAR* Name = nullptr;
1299
1300 // Size of the GPU physical memory committed to a reserved buffer.
1301 // May be UINT64_MAX for regular (non-reserved) buffers or when the entire resource is committed.
1302 uint64 CommittedSizeInBytes = UINT64_MAX;
1303
1304#if RHI_USE_RESOURCE_DEBUG_NAME
1305 // Tracks the number of items in ViewCache when the debug Name was updated, so we know if items were added and we need to propagate the debug name to the new items
1307#endif
1308
1309 const uint32 NumAllocatedElements;
1310 uint32 LastUsedFrame = 0;
1311
1313
1314 friend FRDGBuilder;
1315 friend FRDGBufferPool;
1316};
1317
1319class FRDGBuffer final
1320 : public FRDGViewableResource
1321{
1322public:
1324
1327
1330
1333 {
1334 return static_cast<FRHIBuffer*>(FRDGViewableResource::GetRHI());
1335 }
1336
1339 {
1340 checkf(Desc.Usage & BUF_DrawIndirect, TEXT("Buffer %s was not flagged for indirect draw usage."), Name);
1341 return GetRHI();
1342 }
1343
1345
1347 {
1348 return Handle;
1349 }
1350
1351 inline uint32 GetSize() const
1352 {
1353 return Desc.GetSize();
1354 }
1355
1356 inline uint32 GetStride() const
1357 {
1358 return Desc.BytesPerElement;
1359 }
1360
1361 bool IsCulled() const
1362 {
1363 return ReferenceCount == 0 && PendingCommitSize == 0;
1364 }
1365
1366private:
1369
1371 RENDERCORE_API void FinalizeDesc();
1372
1373 FRHIBuffer* GetRHIUnchecked() const
1374 {
1375 return static_cast<FRHIBuffer*>(FRDGResource::GetRHIUnchecked());
1376 }
1377
1379 FRDGBufferHandle Handle;
1380
1382 FRDGBufferHandle PreviousOwner;
1383 FRDGBufferHandle NextOwner;
1384
1386 FRDGPooledBuffer* PooledBuffer = nullptr;
1387
1389 FRHITransientBuffer* TransientBuffer = nullptr;
1390
1392 FRHIBufferViewCache* ViewCache = nullptr;
1393
1396
1398 FRDGProducerStatesByPipeline LastProducer;
1399
1401 FRDGBufferNumElementsCallback* NumElementsCallback = nullptr;
1402
1404 uint64 PendingCommitSize = 0;
1405
1407 FRDGSubresourceState* State = nullptr;
1408
1410 FRDGSubresourceState* FirstState = nullptr;
1411
1413 FRDGSubresourceState* MergeState = nullptr;
1414
1415 friend FRDGBuilder;
1416 friend FRDGBarrierValidation;
1417 friend FRDGUserValidation;
1418 friend FRDGBufferRegistry;
1419 friend FRDGAllocator;
1420 friend FRDGTrace;
1421};
1422
1424class FRDGBufferSRV final
1425 : public FRDGShaderResourceView
1426{
1427public:
1429
1432
1433 FRDGBufferRef GetParent() const override
1434 {
1435 return Desc.Buffer;
1436 }
1437
1438private:
1439 FRDGBufferSRV(const TCHAR* InName, const FRDGBufferSRVDesc& InDesc)
1441 , Desc(InDesc)
1442 {}
1443
1444 friend FRDGBuilder;
1445 friend FRDGViewRegistry;
1446 friend FRDGAllocator;
1447};
1448
1450class FRDGBufferUAV final
1452{
1453public:
1455
1458
1459 FRDGBufferRef GetParent() const override
1460 {
1461 return Desc.Buffer;
1462 }
1463
1464private:
1467 , Desc(InDesc)
1468 {}
1469
1470 friend FRDGBuilder;
1471 friend FRDGViewRegistry;
1472 friend FRDGAllocator;
1473};
1474
1475template <typename ViewableResourceType>
1477{
1478 check(ViewableResourceType::StaticType == Resource->Type);
1479 return static_cast<ViewableResourceType*>(Resource);
1480}
1481
1482template <typename ViewType>
1483inline ViewType* GetAs(FRDGView* View)
1484{
1485 check(ViewType::StaticType == View->Type);
1486 return static_cast<ViewType*>(View);
1487}
1488
1490{
1491 return GetAs<FRDGBuffer>(Resource);
1492}
1493
1495{
1496 return GetAs<FRDGTexture>(Resource);
1497}
1498
1500{
1501 return GetAs<FRDGBufferUAV>(View);
1502}
1503
1505{
1506 return GetAs<FRDGBufferSRV>(View);
1507}
1508
1510{
1511 return GetAs<FRDGTextureUAV>(View);
1512}
1513
1515{
1516 return GetAs<FRDGTextureSRV>(View);
1517}
1518
1521
1522#include "RenderGraphResources.inl" // IWYU pragma: export
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int8 int8
An 8-bit signed integer.
Definition Platform.h:1121
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
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
constexpr bool EnumHasAllFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:28
EPixelFormat
Definition PixelFormat.h:16
@ PF_Unknown
Definition PixelFormat.h:17
ERHIAccess
Definition RHIAccess.h:11
EResourceTransitionFlags
Definition RHIDefinitions.h:1517
EBufferUsageFlags
Definition RHIDefinitions.h:892
#define BUF_DrawIndirect
Definition RHIDefinitions.h:987
ERHIPipeline
Definition RHIPipeline.h:13
ERHITexturePlane
Definition RHIResources.h:2574
ERDGTextureFlags
Definition RenderGraphDefinitions.h:185
#define IF_RDG_ENABLE_DEBUG(Op)
Definition RenderGraphDefinitions.h:17
ERDGViewableResourceType
Definition RenderGraphDefinitions.h:231
#define RDG_ENABLE_DEBUG
Definition RenderGraphDefinitions.h:13
ERDGViewType
Definition RenderGraphDefinitions.h:239
ERDGBufferFlags
Definition RenderGraphDefinitions.h:163
ERDGUnorderedAccessViewFlags
Definition RenderGraphDefinitions.h:221
FRDGTexture * GetAsTexture(FRDGViewableResource *Resource)
Definition RenderGraphResources.h:1494
ViewableResourceType * GetAs(FRDGViewableResource *Resource)
Definition RenderGraphResources.h:1476
FRDGTextureSRV * GetAsTextureSRV(FRDGView *View)
Definition RenderGraphResources.h:1514
FRDGBuffer * GetAsBuffer(FRDGViewableResource *Resource)
Definition RenderGraphResources.h:1489
FRDGBufferUAV * GetAsBufferUAV(FRDGView *View)
Definition RenderGraphResources.h:1499
FRDGTextureDesc Translate(const FPooledRenderTargetDesc &InDesc)
Definition RenderGraphResources.inl:96
FRDGBufferSRV * GetAsBufferSRV(FRDGView *View)
Definition RenderGraphResources.h:1504
FGraphicsPipelineRenderTargetsInfo ExtractRenderTargetsInfo(const FRDGParameterStruct &ParameterStruct)
Definition RenderGraphResources.inl:208
FRDGTextureUAV * GetAsTextureUAV(FRDGView *View)
Definition RenderGraphResources.h:1509
ERDGBarrierLocation
Definition RenderGraphResources.h:57
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
if(Failed) console_printf("Failed.\n")
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 NameTypes.h:617
Definition RenderGraphAllocator.h:24
Definition RenderGraphPass.h:108
Definition RenderGraphValidation.h:154
Definition RenderGraphResourcePool.h:15
Definition RenderGraphResources.h:1426
FRDGBufferRef GetParent() const override
Definition RenderGraphResources.h:1433
const FRDGBufferSRVDesc Desc
Definition RenderGraphResources.h:1431
static const ERDGViewType StaticType
Definition RenderGraphResources.h:1428
Definition RenderGraphResources.h:1452
FRDGBufferRef GetParent() const override
Definition RenderGraphResources.h:1459
static const ERDGViewType StaticType
Definition RenderGraphResources.h:1454
const FRDGBufferUAVDesc Desc
Definition RenderGraphResources.h:1457
Definition RenderGraphResources.h:1321
bool IsCulled() const
Definition RenderGraphResources.h:1361
static const ERDGViewableResourceType StaticType
Definition RenderGraphResources.h:1323
FRHIBuffer * GetIndirectRHICallBuffer() const
Definition RenderGraphResources.h:1338
FRDGBufferHandle GetHandle() const
Definition RenderGraphResources.h:1346
const ERDGBufferFlags Flags
Definition RenderGraphResources.h:1326
FRHIBuffer * GetRHI() const
The following methods may only be called during pass execution.
Definition RenderGraphResources.h:1332
uint32 GetSize() const
Definition RenderGraphResources.h:1351
FRDGBufferDesc Desc
Definition RenderGraphResources.h:1325
uint32 GetStride() const
Definition RenderGraphResources.h:1356
Definition RenderGraphBuilder.h:49
Definition RenderGraphParameter.h:213
const FRHIUniformBufferLayout & GetLayout() const
Definition RenderGraphParameter.h:233
Definition RenderGraphPass.h:217
Definition RenderGraphResources.h:1196
FRHIShaderResourceView * GetSRV(FRHICommandListBase &RHICmdList, const FRHIBufferSRVCreateInfo &SRVDesc)
Definition RenderGraphResources.h:1244
FRHIShaderResourceView * GetSRV()
Definition RenderGraphResources.h:1232
uint32 GetAlignedSize() const
Definition RenderGraphResources.h:1254
FRHIShaderResourceView * GetOrCreateSRV(FRHICommandListBase &RHICmdList, const FRHIBufferSRVCreateInfo &SRVDesc)
Definition RenderGraphResources.h:1220
const TCHAR * GetName() const
Definition RenderGraphResources.h:1264
uint32 GetSize() const
Definition RenderGraphResources.h:1249
FRHIBuffer * GetRHI() const
Definition RenderGraphResources.h:1229
uint64 GetCommittedSize() const
Definition RenderGraphResources.h:1259
FRDGPooledBuffer(FRHICommandListBase &RHICmdList, TRefCountPtr< FRHIBuffer > InBuffer, const FRDGBufferDesc &InDesc, uint32 InNumAllocatedElements, const TCHAR *InName)
Definition RenderGraphResources.h:1198
const FRDGBufferDesc Desc
Definition RenderGraphResources.h:1214
FRHIUnorderedAccessView * GetOrCreateUAV(FRHICommandListBase &RHICmdList, const FRHIBufferUAVCreateInfo &UAVDesc)
Definition RenderGraphResources.h:1217
Definition RenderGraphResources.h:537
FRDGPooledTexture(FRHITexture *InTexture)
Definition RenderGraphResources.h:539
FRHIUnorderedAccessView * GetOrCreateUAV(FRHICommandListBase &RHICmdList, const FRHITextureUAVCreateInfo &UAVDesc)
Definition RenderGraphResources.h:546
FRHIShaderResourceView * GetOrCreateSRV(FRHICommandListBase &RHICmdList, const FRHITextureSRVCreateInfo &SRVDesc)
Definition RenderGraphResources.h:549
FRHITexture * GetRHI() const
Definition RenderGraphResources.h:557
Definition RenderGraphResources.h:131
virtual ~FRDGResource()=default
bool HasRHI() const
Definition RenderGraphResources.h:170
FRDGResource(const FRDGResource &)=delete
RENDERCORE_API void ValidateRHIAccess() const
virtual RENDERCORE_API void MarkResourceAsUsed()
The following methods may only be called during pass execution.
FRDGResource(const TCHAR *InName)
Definition RenderGraphResources.h:158
FRHIResource * GetRHI() const
Definition RenderGraphResources.h:149
FRHIResource * GetRHIUnchecked() const
Definition RenderGraphResources.h:165
FRHIResource * ResourceRHI
Definition RenderGraphResources.h:175
const TCHAR *const Name
Definition RenderGraphResources.h:137
Definition RenderGraphResources.h:698
FRHIShaderResourceView * GetRHI() const
Definition RenderGraphResources.h:701
FRHIShaderResourceView * GetRHIUnchecked() const
Definition RenderGraphResources.h:712
FRDGShaderResourceView(const TCHAR *InName, ERDGViewType InType)
Definition RenderGraphResources.h:707
Definition RenderGraphResources.h:747
FRDGTextureRef Texture
Definition RenderGraphResources.h:833
static FRDGTextureSRVDesc CreateWithPixelFormat(FRDGTextureRef Texture, EPixelFormat PixelFormat)
Definition RenderGraphResources.h:793
bool operator==(const FRDGTextureSRVDesc &Other) const
Definition RenderGraphResources.h:808
static FRDGTextureSRVDesc CreateForMetaData(FRDGTextureRef Texture, ERDGTextureMetaDataAccess MetaData)
Definition RenderGraphResources.h:801
static FRDGTextureSRVDesc CreateForMipLevel(FRDGTextureRef Texture, int32 MipLevel)
Definition RenderGraphResources.h:768
friend uint32 GetTypeHash(const FRDGTextureSRVDesc &Desc)
Definition RenderGraphResources.h:818
FRDGTextureSRVDesc(FRDGTexture *InTexture)
Definition RenderGraphResources.h:751
FRDGTextureSRVDesc()=default
static FRDGTextureSRVDesc CreateForSlice(FRDGTextureRef Texture, int32 SliceIndex)
Definition RenderGraphResources.h:778
bool operator!=(const FRDGTextureSRVDesc &Other) const
Definition RenderGraphResources.h:813
bool IsValid() const
Definition RenderGraphResources.h:824
static FRDGTextureSRVDesc Create(FRDGTextureRef Texture)
Definition RenderGraphResources.h:762
Definition RenderGraphResources.h:839
static const ERDGViewType StaticType
Definition RenderGraphResources.h:841
FRDGTextureSubresourceRange GetSubresourceRange() const
Definition RenderGraphResources.inl:133
const FRDGTextureSRVDesc Desc
Definition RenderGraphResources.h:844
FRDGTextureRef GetParent() const override
Definition RenderGraphResources.h:846
Definition RenderGraphResources.h:867
FRDGTextureUAVDesc(FRDGTextureRef InTexture, uint8 InMipLevel=0, EPixelFormat InFormat=PF_Unknown, uint16 InFirstArraySlice=0, uint16 InNumArraySlices=0)
Definition RenderGraphResources.h:871
friend uint32 GetTypeHash(const FRDGTextureUAVDesc &Desc)
Definition RenderGraphResources.h:894
bool operator!=(const FRDGTextureUAVDesc &Other) const
Definition RenderGraphResources.h:889
bool operator==(const FRDGTextureUAVDesc &Other) const
Definition RenderGraphResources.h:884
static FRDGTextureUAVDesc CreateForMetaData(FRDGTextureRef Texture, ERDGTextureMetaDataAccess MetaData)
Definition RenderGraphResources.h:877
FRDGTextureUAVDesc()=default
FRDGTextureRef Texture
Definition RenderGraphResources.h:899
Definition RenderGraphResources.h:905
static const ERDGViewType StaticType
Definition RenderGraphResources.h:907
FRDGTextureSubresourceRange GetSubresourceRange() const
Definition RenderGraphResources.inl:165
FRDGTextureRef GetParent() const override
Definition RenderGraphResources.h:912
FRHITexture * GetParentRHI() const
Definition RenderGraphResources.h:919
const FRDGTextureUAVDesc Desc
Definition RenderGraphResources.h:910
Definition RenderGraphResources.h:571
FRDGTextureSubresourceRange GetSubresourceRange() const
Definition RenderGraphResources.h:599
FRDGTextureHandle GetHandle() const
Definition RenderGraphResources.h:589
bool IsCulled() const
Definition RenderGraphResources.h:616
RENDERCORE_API FRDGTextureSubresourceRange GetSubresourceRangeSRV() const
Definition RenderGraphResources.cpp:206
uint32 GetSubresourceCount() const
Definition RenderGraphResources.h:604
FRDGTextureSubresourceLayout GetSubresourceLayout() const
Definition RenderGraphResources.h:594
const ERDGTextureFlags Flags
Definition RenderGraphResources.h:576
void EncloseVisualizeExtent(const FIntPoint &Point)
Definition RenderGraphResources.h:681
FRDGTextureSubresource GetSubresource(uint32 SubresourceIndex) const
Definition RenderGraphResources.h:609
const FRDGTextureDesc Desc
Definition RenderGraphResources.h:575
FRHITexture * GetRHI() const
The following methods may only be called during pass execution.
Definition RenderGraphResources.h:582
static const ERDGViewableResourceType StaticType
Definition RenderGraphResources.h:573
Definition RenderGraphResources.h:193
virtual RENDERCORE_API ~FRDGUniformBuffer()
const FRDGParameterStruct & GetParameters() const
Definition RenderGraphResources.h:198
FRDGUniformBuffer(const TParameterStruct *InParameters, const TCHAR *InName)
Definition RenderGraphResources.h:226
FRHIUniformBuffer * GetRHI() const
The following methods may only be called during pass execution.
Definition RenderGraphResources.h:217
const TCHAR * GetLayoutName() const
Definition RenderGraphResources.h:203
RENDERCORE_API void MarkResourceAsUsed() override
The following methods may only be called during pass execution.
Definition RenderGraphResources.h:721
const ERDGUnorderedAccessViewFlags Flags
Definition RenderGraphResources.h:723
FRDGUnorderedAccessView(const TCHAR *InName, ERDGViewType InType, ERDGUnorderedAccessViewFlags InFlags)
Definition RenderGraphResources.h:732
FRHIUnorderedAccessView * GetRHI() const
Definition RenderGraphResources.h:726
FRHIUnorderedAccessView * GetRHIUnchecked() const
Definition RenderGraphResources.h:738
Definition RenderGraphValidation.h:41
Definition RenderGraphResources.h:496
ERDGViewableResourceType GetParentType() const
Definition RenderGraphResources.h:504
FRDGView(const TCHAR *Name, ERDGViewType InType)
Definition RenderGraphResources.h:515
virtual FRDGViewableResource * GetParent() const =0
FRDGViewHandle GetHandle() const
Definition RenderGraphResources.h:509
const ERDGViewType Type
Definition RenderGraphResources.h:499
Definition RenderGraphResources.h:291
EAccessMode
Definition RenderGraphResources.h:367
bool IsExtracted() const
Definition RenderGraphResources.h:313
bool HasBeenProduced() const
Definition RenderGraphResources.h:321
void SetOwnerName(const FName &InOwnerName)
Definition RenderGraphResources.h:326
ETransientExtractionHint TransientExtractionHint
Definition RenderGraphResources.h:409
uint8 bCollectForAllocate
Definition RenderGraphResources.h:397
uint32 PassStateIndex
Definition RenderGraphResources.h:442
FRDGPassHandlesByPipeline LastPasses
Definition RenderGraphResources.h:436
ERHIAccess EpilogueAccess
Definition RenderGraphResources.h:448
bool IsDebugNameHeapAllocated() const
Definition RenderGraphResources.h:340
uint8 bSplitFirstTransition
Definition RenderGraphResources.h:391
bool IsExternal() const
Definition RenderGraphResources.h:307
uint32 ReferenceCount
Definition RenderGraphResources.h:439
FRDGPassHandle DiscardPass
Definition RenderGraphResources.h:434
static const ERHIAccess DefaultEpilogueAccess
Definition RenderGraphResources.h:357
const ERDGViewableResourceType Type
Definition RenderGraphResources.h:304
uint8 bProduced
Definition RenderGraphResources.h:379
uint8 bExtracted
Definition RenderGraphResources.h:376
FRDGPassHandle FirstPass
Definition RenderGraphResources.h:435
uint8 bQueuedForUpload
Definition RenderGraphResources.h:394
struct FRDGViewableResource::FAccessModeState AccessModeState
uint8 bForceNonTransient
Definition RenderGraphResources.h:385
uint8 bExternal
Definition RenderGraphResources.h:373
friend bool IsExtendedLifetimeResource(FRDGViewableResource *)
Definition RenderGraphPrivate.cpp:701
TArrayView< const FRHITransientAliasingOverlap > AliasingOverlaps
Definition RenderGraphResources.h:445
uint8 bClobbered
Definition RenderGraphResources.h:405
bool IsCullRoot() const
Definition RenderGraphResources.h:352
FRDGPassHandle AcquirePass
Definition RenderGraphResources.h:433
uint8 bSkipLastTransition
Definition RenderGraphResources.h:388
ETransientExtractionHint
Definition RenderGraphResources.h:360
uint8 bTransient
Definition RenderGraphResources.h:382
Definition RHIResources.h:5806
RHI_API FRHIShaderResourceView * GetOrCreateSRV(FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, const FRHIBufferSRVCreateInfo &CreateInfo)
Definition RHI.cpp:2000
RHI_API FRHIUnorderedAccessView * GetOrCreateUAV(FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, const FRHIBufferUAVCreateInfo &CreateInfo)
Definition RHI.cpp:2054
Definition RHIResources.h:1581
Definition RHICommandList.h:455
static FRHICommandListImmediate & Get()
Definition RHICommandList.h:5522
Definition RHIResources.h:3755
Definition RHIResources.h:54
void SetOwnerName(FName InOwnerName)
Definition RHIResources.h:122
Definition RHIResources.h:3304
Definition RHIResources.h:5785
RHI_API FRHIShaderResourceView * GetOrCreateSRV(FRHICommandListBase &RHICmdList, FRHITexture *Texture, const FRHITextureSRVCreateInfo &CreateInfo)
Definition RHI.cpp:1937
RHI_API FRHIUnorderedAccessView * GetOrCreateUAV(FRHICommandListBase &RHICmdList, FRHITexture *Texture, const FRHITextureUAVCreateInfo &CreateInfo)
Definition RHI.cpp:1969
Definition RHIResources.h:2153
Definition RHITransientResourceAllocator.h:441
Definition RHITransientResourceAllocator.h:399
Definition RHIResources.h:1232
Definition RHIResources.h:3294
Definition RefCounting.h:213
Definition RenderTargetPool.h:97
Definition ShaderParameterMetadata.h:136
Definition ArrayView.h:139
Definition Array.h:670
Definition AndroidPlatformMisc.h:14
Definition RenderGraphParameter.h:306
Definition RenderGraphResources.h:251
const ParameterStructType * operator->() const
Definition RenderGraphResources.h:270
const TRDGParameterStruct< ParameterStructType > & GetParameters() const
Definition RenderGraphResources.h:255
virtual ~TRDGUniformBuffer()
Definition RenderGraphResources.h:253
TUniformBufferRef< ParameterStructType > GetRHIRef() const
Definition RenderGraphResources.h:265
const ParameterStructType * GetContents() const
Definition RenderGraphResources.h:260
Definition RefCounting.h:454
Definition ShaderParameterMacros.h:136
Definition ByteSwap.h:14
Definition RHIResources.h:4547
Definition RendererInterface.h:81
Definition RenderTargetPool.h:27
Definition RenderGraphResources.h:940
bool operator==(const FRDGBufferDesc &Other) const
Definition RenderGraphResources.h:1094
friend uint32 GetTypeHash(const FRDGBufferDesc &Desc)
Definition RenderGraphResources.h:1085
static FRDGBufferDesc CreateByteAddressDesc(uint32 NumElements)
Definition RenderGraphResources.h:952
static FRDGBufferDesc CreateByteAddressUploadDesc(uint32 NumBytes)
Definition RenderGraphResources.h:1061
const FShaderParametersMetadata * Metadata
Definition RenderGraphResources.h:1117
static FRDGBufferDesc CreateUploadDesc(uint32 BytesPerElement, uint32 NumElements)
Definition RenderGraphResources.h:1027
static FRDGBufferDesc CreateByteAddressDesc(uint32 NumBytes)
Definition RenderGraphResources.h:941
static FRDGBufferDesc CreateStructuredUploadDesc(uint32 NumElements)
Definition RenderGraphResources.h:1054
static FRDGBufferDesc CreateStructuredUploadDesc(uint32 BytesPerElement, uint32 NumElements)
Definition RenderGraphResources.h:1044
uint32 GetSize() const
Definition RenderGraphResources.h:1080
static FRDGBufferDesc CreateByteAddressUploadDesc(uint32 NumElements)
Definition RenderGraphResources.h:1072
static FRDGBufferDesc CreateBufferDesc(uint32 BytesPerElement, uint32 NumElements)
Definition RenderGraphResources.h:1010
static FRDGBufferDesc CreateIndirectDesc(uint32 BytesPerElement, uint32 NumElements)
Definition RenderGraphResources.h:959
uint32 NumElements
Definition RenderGraphResources.h:1111
static FRDGBufferDesc CreateStructuredDesc(uint32 NumElements)
Definition RenderGraphResources.h:1003
bool operator!=(const FRDGBufferDesc &Other) const
Definition RenderGraphResources.h:1102
static FRDGBufferDesc CreateBufferDesc(uint32 NumElements)
Definition RenderGraphResources.h:1020
static FRDGBufferDesc CreateIndirectDesc(uint32 NumElements=1)
Definition RenderGraphResources.h:983
uint32 BytesPerElement
Definition RenderGraphResources.h:1108
static FRDGBufferDesc CreateRawIndirectDesc(uint32 NumBytes)
Definition RenderGraphResources.h:968
static FRDGBufferDesc CreateUploadDesc(uint32 NumElements)
Definition RenderGraphResources.h:1037
static FRDGBufferDesc CreateIndirectDesc(uint32 NumElements=1)
Definition RenderGraphResources.h:988
EBufferUsageFlags Usage
Definition RenderGraphResources.h:1114
static FRDGBufferDesc CreateStructuredDesc(uint32 BytesPerElement, uint32 NumElements)
Definition RenderGraphResources.h:993
Definition RenderGraphResources.h:1122
FRDGBufferSRVDesc(FRDGBufferRef InBuffer, FRHIRayTracingScene *InRayTracingScene, uint32 InStartOffsetBytes)
Definition RenderGraphResources.h:1138
FRDGBufferSRVDesc(FRDGBufferRef InBuffer, EPixelFormat InFormat)
Definition RenderGraphResources.h:1127
FRDGBufferSRVDesc()=default
friend uint32 GetTypeHash(const FRDGBufferSRVDesc &Desc)
Definition RenderGraphResources.h:1153
bool operator!=(const FRDGBufferSRVDesc &Other) const
Definition RenderGraphResources.h:1148
FRDGBufferSRVDesc(FRDGBufferRef InBuffer, uint32 InStartOffsetBytes, uint32 InNumElements)
Definition RenderGraphResources.h:1133
FRDGBufferRef Buffer
Definition RenderGraphResources.h:1158
bool operator==(const FRDGBufferSRVDesc &Other) const
Definition RenderGraphResources.h:1143
Definition RenderGraphResources.h:1163
bool operator!=(const FRDGBufferUAVDesc &Other) const
Definition RenderGraphResources.h:1178
FRDGBufferUAVDesc(FRDGBufferRef InBuffer, EPixelFormat InFormat)
Definition RenderGraphResources.h:1168
FRDGBufferRef Buffer
Definition RenderGraphResources.h:1188
bool operator==(const FRDGBufferUAVDesc &Other) const
Definition RenderGraphResources.h:1173
FRDGBufferUAVDesc()=default
friend uint32 GetTypeHash(const FRDGBufferUAVDesc &Desc)
Definition RenderGraphResources.h:1183
Definition RenderGraphResources.h:43
FRDGPass * PassIfReadAccess
Definition RenderGraphResources.h:46
FRDGPass * PassIfSkipUAVBarrier
Definition RenderGraphResources.h:45
ERHIAccess Access
Definition RenderGraphResources.h:47
FRDGPass * Pass
Definition RenderGraphResources.h:44
FRDGViewHandle NoUAVBarrierHandle
Definition RenderGraphResources.h:48
Definition RenderGraphResources.h:69
FRDGViewUniqueFilter NoUAVBarrierFilter
Definition RenderGraphResources.h:115
FRDGPassHandle GetFirstPass() const
Definition RenderGraphResources.inl:36
FRDGPassHandlesByPipeline LastPass
Definition RenderGraphResources.h:112
FRDGSubresourceState()=default
static bool IsMergeAllowed(ERDGViewableResourceType ResourceType, const FRDGSubresourceState &Previous, const FRDGSubresourceState &Next)
Definition RenderGraphResources.cpp:72
FRDGSubresourceState(ERHIAccess InAccess)
Definition RenderGraphResources.h:78
FRDGPassHandlesByPipeline FirstPass
Definition RenderGraphResources.h:109
bool IsUsedBy(ERHIPipeline Pipeline) const
Definition RenderGraphResources.inl:25
FRDGBufferReservedCommitHandle ReservedCommitHandle
Definition RenderGraphResources.h:118
EResourceTransitionFlags Flags
Definition RenderGraphResources.h:121
static bool IsTransitionRequired(const FRDGSubresourceState &Previous, const FRDGSubresourceState &Next)
Definition RenderGraphResources.cpp:138
ERHIPipeline GetPipelines() const
Definition RenderGraphResources.inl:41
void Validate()
Definition RenderGraphResources.inl:15
FRDGSubresourceState(ERHIPipeline Pipeline, FRDGPassHandle PassHandle)
Definition RenderGraphResources.h:82
FRDGPassHandle GetLastPass() const
Definition RenderGraphResources.inl:31
ERHIAccess Access
Definition RenderGraphResources.h:106
ERDGBarrierLocation BarrierLocation
Definition RenderGraphResources.h:124
void SetPass(ERHIPipeline Pipeline, FRDGPassHandle PassHandle)
Definition RenderGraphResources.inl:7
Definition RenderGraphDefinitions.h:627
Definition RenderGraphTextureSubresource.h:70
FRDGTextureSubresource GetSubresource(uint32 Index) const
Definition RenderGraphTextureSubresource.h:98
Definition RenderGraphTextureSubresource.h:130
Definition RenderGraphTextureSubresource.h:11
Definition RenderGraphResources.h:412
ERHIAccess Access
Definition RenderGraphResources.h:422
ERHIPipeline Pipelines
Definition RenderGraphResources.h:423
EAccessMode ActiveMode
Definition RenderGraphResources.h:429
FAccessModeState()
Definition RenderGraphResources.h:415
uint8 bLocked
Definition RenderGraphResources.h:425
uint8 bQueued
Definition RenderGraphResources.h:426
bool IsExternalAccess() const
Definition RenderGraphResources.h:413
EAccessMode Mode
Definition RenderGraphResources.h:424
Definition RHIResources.h:1321
Definition RHIResources.h:5700
bool operator==(const FRHIBufferSRVCreateInfo &Other) const
Definition RHIResources.h:5717
Definition RHIResources.h:5754
bool operator==(const FRHIBufferUAVCreateInfo &Other) const
Definition RHIResources.h:5761
Definition RHIResources.h:1689
ETextureDimension Dimension
Definition RHIResources.h:1871
uint8 NumMips
Definition RHIResources.h:1865
Definition RHIResources.h:5570
ERHITextureMetaDataAccess MetaData
Definition RHIResources.h:5608
bool operator==(const FRHITextureSRVCreateInfo &Other) const
Definition RHIResources.h:5613
TOptional< ETextureDimension > DimensionOverride
Definition RHIResources.h:5611
uint16 NumArraySlices
Definition RHIResources.h:5605
EPixelFormat Format
Definition RHIResources.h:5590
uint16 FirstArraySlice
Definition RHIResources.h:5602
uint8 NumMipLevels
Definition RHIResources.h:5596
uint8 MipLevel
Definition RHIResources.h:5593
static RHI_API bool Validate(const FRHITextureDesc &TextureDesc, const FRHITextureSRVCreateInfo &TextureSRVDesc, const TCHAR *TextureName, bool bFatal)
Definition RHI.cpp:1755
Definition RHIResources.h:5651
ERHITextureMetaDataAccess MetaData
Definition RHIResources.h:5690
bool operator==(const FRHITextureUAVCreateInfo &Other) const
Definition RHIResources.h:5666
const FString & GetDebugName() const
Definition RHIResources.h:1155
Definition ShaderParameterMacros.h:770
Definition RendererInterface.h:494
Definition NumericLimits.h:41
Definition Optional.h:131
OptionalType & Emplace(ArgsType &&... Args)
Definition Optional.h:323
Definition IntPoint.h:25
IntType X
Definition IntPoint.h:34