76#pragma mark - Public Shader Resource Mutators -
93 , NS::UInteger
const Offset
94 , NS::UInteger
const Length
95 , NS::UInteger
const Index
96 , MTL::ResourceUsage
const Usage
98 , NS::UInteger
const ElementRowPitch = 0
102#if METAL_RHI_RAYTRACING
113#if METAL_USE_METAL_SHADER_CONVERTER
130 template<
class ShaderType, EMetalShaderStages Frequency, MTL::FunctionType FunctionType>
210 template <
class ShaderType>
224#pragma mark - Private Type Declarations -
225 struct FMetalBufferBinding
227 FMetalBufferBinding() : Bytes(nullptr), Offset(0), Length(0), Usage((
MTL::ResourceUsage)0), ReferencedResources{} {}
237 NS::UInteger ElementRowPitch;
239 MTL::ResourceUsage Usage;
240#if METAL_RHI_RAYTRACING
245 TArray<TTuple<MTL::Resource*, MTL::ResourceUsage>> ReferencedResources;
249 struct FMetalBufferBindings
251 FMetalBufferBindings() : Bound(0) {}
261 struct FMetalTextureBindings
273 struct FMetalSamplerBindings
275 FMetalSamplerBindings() : Bound(0) {}
283 void InternalResetStageBindings();
306 MTL::StoreAction DepthStore;
307 MTL::StoreAction StencilStore;
309#if METAL_USE_METAL_SHADER_CONVERTER
321 MTL::VisibilityResultMode VisibilityMode;
322 NS::UInteger VisibilityOffset;
323 NS::UInteger VisibilityWritten;
336 uint32 RenderTargetArraySize;
350 MTL::RenderPassDescriptor* RenderPassDesc;
353 bool bIsRenderTargetActive;
354 bool bHasValidRenderTarget;
355 bool bHasValidColorTarget;
356 bool bIsParallelContext =
false;
370 MTL::RenderPassDescriptor* Desc = Cache.
Pop();
373 Desc = MTL::RenderPassDescriptor::alloc()->init();
381 MTL::RenderPassColorAttachmentDescriptorArray* Attachments = Desc->colorAttachments();
384 MTL::RenderPassColorAttachmentDescriptor*
Color = Attachments->object(i);
385 Color->setTexture(
nullptr);
386 Color->setResolveTexture(
nullptr);
387 Color->setStoreAction(MTL::StoreActionStore);
390 MTL::RenderPassDepthAttachmentDescriptor*
Depth = Desc->depthAttachment();
391 Depth->setTexture(
nullptr);
392 Depth->setResolveTexture(
nullptr);
393 Depth->setStoreAction(MTL::StoreActionStore);
395 MTL::RenderPassStencilAttachmentDescriptor*
Stencil = Desc->stencilAttachment();
397 Stencil->setResolveTexture(
nullptr);
398 Stencil->setStoreAction(MTL::StoreActionStore);
400 Desc->setVisibilityResultBuffer(
nullptr);
403 Desc->setRenderTargetArrayLength(1);
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
bool IsValidRef(const FVertexBufferAndSRV &Buffer)
Definition GPUSkinVertexFactory.h:92
@ MaxSimultaneousRenderTargets
Definition RHIDefinitions.h:287
@ MaxVertexElementCount
Definition RHIDefinitions.h:276
EPrimitiveType
Definition RHIDefinitions.h:822
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
void Push(T *NewItem)
Definition LockFreeList.h:849
T * Pop()
Definition LockFreeList.h:858
Definition LockFreeList.h:898
Definition UnrealString.h.inl:34
Definition StaticArray.h:26
EShaderStage
Definition CrossCompilerCommon.h:16
@ Bytes
Definition PacketView.h:39
const FVector Offset(0, 0, 20)
Definition IOSView.cpp:31
Definition VulkanCommon.h:29
T Length(const UE::Math::TVector< T > &V)
Definition VectorTypes.h:148
U16 Index
Definition radfft.cpp:71
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
Definition RHIResources.h:5248
int32 GetNumColorRenderTargets() const
Definition RHIResources.h:5466
Definition LinuxPlatformSplash.cpp:43