73 Allocation() : Range(0,0) {}
76 MTL::Buffer* Resource;
82 int64 volatile OutstandingAllocs;
83 NS::UInteger MinAlign;
84 NS::UInteger UsedSize;
85 MTL::Buffer* ParentBuffer;
116 NS::UInteger MinAlign;
117 NS::UInteger WriteHead;
118 NS::UInteger UsedSize;
119 NS::UInteger FreedSize;
120 MTL::Buffer* ParentBuffer;
149 NS::UInteger MinAlign;
150 NS::UInteger BlockSize;
151 int64 volatile OutstandingAllocs;
152 int64 volatile UsedSize;
153 MTL::Buffer* ParentBuffer;
210 NS::UInteger FrameSize[10];
211 NS::UInteger LastFrameChange;
212 NS::UInteger InitialSize;
213 NS::UInteger MinAlign;
214 NS::UInteger CommitHead;
215 NS::UInteger SubmitHead;
216 NS::UInteger WriteHead;
217 NS::UInteger BufferSize;
218 MTL::ResourceOptions Options;
219 MTL::StorageMode Storage;
312 PurgeAfterNumFrames = 2,
313 CullAfterNumFrames = 3,
431 MinTexturesPerHeap = 4,
432 MaxTextureSize = Size64Mb,
442 enum EMetalHeapTextureUsage
445 EMetalHeapTextureUsageResource = 0,
447 EMetalHeapTextureUsageRenderTarget = 1,
449 EMetalHeapTextureUsageNum = 2
471#if METAL_RHI_RAYTRACING
481 TextureHeapSize TextureSizeToIndex(
uint32 Size);
483 MTLHeapPtr GetTextureHeap(MTL::TextureDescriptor* Desc, MTL::SizeAndAlign
Size);
486 static uint32 MagazineSizes[NumMagazineSizes];
487 static uint32 HeapSizes[NumHeapSizes];
488 static uint32 MagazineAllocSizes[NumMagazineSizes];
489 static uint32 HeapAllocSizes[NumHeapSizes];
490 static uint32 HeapTextureHeapSizes[NumTextureHeapSizes];
522 MTL::Resource* Resource;
523 MTL::ResourceOptions Options;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
void Init()
Definition LockFreeList.h:4
EBufferUsageFlags
Definition RHIDefinitions.h:892
#define BUF_None
Definition RHIDefinitions.h:979
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
Definition MetalBuffer.h:309
MTLTexturePtr CreateTexture(FMetalDevice &Device, MTL::TextureDescriptor *Desc)
Definition MetalBuffer.cpp:1271
~FMetalTexturePool()
Definition MetalBuffer.cpp:1267
void ReleaseTexture(MTLTexturePtr Texture)
Definition MetalBuffer.cpp:1312
void Drain(bool const bForce)
Definition MetalBuffer.cpp:1348
Definition RHICommandList.h:455
Definition UnrealString.h.inl:34
Definition ResourcePool.h:18
Definition SharedPointer.h:692
Definition IOSView.cpp:31
Definition MetalBuffer.h:317
NS::UInteger usage
Definition MetalBuffer.h:378
NS::UInteger resourceOptions
Definition MetalBuffer.h:377
NS::UInteger depth
Definition MetalBuffer.h:373
NS::UInteger height
Definition MetalBuffer.h:372
NS::UInteger arrayLength
Definition MetalBuffer.h:376
NS::UInteger pixelFormat
Definition MetalBuffer.h:370
bool operator<(Descriptor const &Other) const
Definition MetalBuffer.h:333
bool operator==(Descriptor const &Other) const
Definition MetalBuffer.h:351
NS::UInteger freedFrame
Definition MetalBuffer.h:379
NS::UInteger mipmapLevelCount
Definition MetalBuffer.h:374
friend uint32 GetTypeHash(Descriptor const &Other)
Definition MetalBuffer.h:318
NS::UInteger sampleCount
Definition MetalBuffer.h:375
NS::UInteger textureType
Definition MetalBuffer.h:369
NS::UInteger width
Definition MetalBuffer.h:371