60 void BeginComputeEncoder();
61 void EndComputeEncoder();
62 void BeginBlitEncoder();
63 void EndBlitEncoder();
70 virtual void RHIDispatchComputeShader(
uint32 ThreadGroupCountX,
uint32 ThreadGroupCountY,
uint32 ThreadGroupCountZ)
final override;
72 virtual void RHIDispatchIndirectComputeShader(
FRHIBuffer* ArgumentBuffer,
uint32 ArgumentOffset)
final override;
86#if (RHI_NEW_GPU_PROFILER == 0)
94 virtual void RHIEndDrawingViewport(
FRHIViewport* Viewport,
bool bPresent,
bool bLockToVsync)
override;
102 virtual void RHISetViewport(
float MinX,
float MinY,
float MinZ,
float MaxX,
float MaxY,
float MaxZ)
final override;
122 virtual void RHISetBlendFactor(
const FLinearColor& BlendFactor)
final override;
128 virtual void RHIDrawPrimitive(
uint32 BaseVertexIndex,
uint32 NumPrimitives,
uint32 NumInstances)
final override;
130 virtual void RHIDrawPrimitiveIndirect(
FRHIBuffer* ArgumentBuffer,
uint32 ArgumentOffset)
final override;
139#if PLATFORM_SUPPORTS_MESH_SHADERS
140 virtual void RHIDispatchMeshShader(
uint32 ThreadGroupCountX,
uint32 ThreadGroupCountY,
uint32 ThreadGroupCountZ)
final override;
141 virtual void RHIDispatchIndirectMeshShader(
FRHIBuffer* ArgumentBuffer,
uint32 ArgumentOffset)
final override;
150 virtual void RHISetDepthBounds(
float MinDepth,
float MaxDepth)
final override;
152#if WITH_RHI_BREADCRUMBS
164 virtual void RHIEndParallelRenderPass() final
override;
171#if METAL_RHI_RAYTRACING
183 virtual void RHISetBindingsOnShaderBindingTable(
205 void CopyFromBufferToBuffer(
FMetalBufferPtr SourceBuffer, NS::UInteger SourceOffset,
FMetalBufferPtr DestinationBuffer, NS::UInteger DestinationOffset, NS::UInteger
Size);
207 void CommitRenderResourceTables(
void);
208 void PrepareToRender(
uint32 PrimitiveType);
209 bool PrepareToDraw(
uint32 PrimitiveType);
210 void PrepareToDispatch();
215#if PLATFORM_SUPPORTS_BINDLESS_RENDERING
222 void PushDescriptorUpdates();
223 void InsertComputeMemoryBarrier();
230 } CurrentPhase = EPhase::Wait;
234 if (Payloads.Num() == 0 || Phase < CurrentPhase)
239 CurrentPhase = Phase;
240 return Payloads.Last();
250 if (!ContextSyncPoint)
253 BatchedSyncPoints.ToSignal.Add(ContextSyncPoint);
256 return ContextSyncPoint;
276 void SynchronizeResource(MTL::Resource* Resource);
301 return GlobalUniformBuffers;
316 return QueryBuffer.ToSharedRef();
336 return bWithinRenderPass;
339 void StartCommandBuffer();
340 void EndCommandBuffer();
342#if RHI_NEW_GPU_PROFILER
365 MTL::RenderPassDescriptor* RenderPassDesc =
nullptr;
373 bool bWithinRenderPass =
false;
374 bool bIsParallelContext =
false;
388#if PLATFORM_SUPPORTS_BINDLESS_RENDERING
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
EMetalFlushFlags
Definition MetalRHIContext.h:35
ERayTracingBindingType
Definition RHICommandList.h:281
uint8 FUniformBufferStaticSlot
Definition RHIDefinitions.h:722
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
void BuildAccelerationStructure(FVulkanCommandListContext &CommandContext, FVulkanRayTracingScene &Scene, FVulkanBuffer *InScratchBuffer, uint32 InScratchOffset, FVulkanBuffer *InInstanceBuffer, uint32 InInstanceOffset, uint32 NumInstances, EAccelerationStructureBuildMode BuildMode)
Definition VulkanRayTracing.cpp:757
Definition MetalRHIContext.h:48
TArray< FMetalPayload * > Payloads
Definition MetalRHIContext.h:381
TSharedPtr< FMetalQueryBufferPool, ESPMode::ThreadSafe > QueryBuffer
Definition MetalRHIContext.h:363
bool IsInsideRenderPass() const
Definition MetalRHIContext.h:334
FMetalCommandQueue & GetCommandQueue()
Definition MetalRHIContext.h:324
FMetalProfiler * GetProfiler()
Definition MetalRHIContext.h:309
const TArray< FRHIUniformBuffer * > & GetStaticUniformBuffers() const
Definition MetalRHIContext.h:299
FMetalStateCache & GetStateCache()
Definition MetalRHIContext.h:319
FMetalSyncPoint * GetContextSyncPoint()
Definition MetalRHIContext.h:248
FMetalDevice & Device
Definition MetalRHIContext.h:349
TRefCountPtr< FMetalFence > CurrentEncoderFence
Definition MetalRHIContext.h:370
FMetalStateCache StateCache
Definition MetalRHIContext.h:360
void SetProfiler(FMetalProfiler *InProfiler)
Definition MetalRHIContext.h:304
FMetalCommandEncoder CurrentEncoder
Definition MetalRHIContext.h:357
void SetCustomPresentViewport(FRHIViewport *Viewport)
Definition MetalRHIContext.h:289
FMetalDevice & GetDevice()
Definition MetalRHIContext.h:329
FMetalSyncPointRef ContextSyncPoint
Definition MetalRHIContext.h:384
TArray< FMetalSyncPointRef > ToSignal
Definition MetalRHIContext.h:264
EPhase
Definition MetalRHIContext.h:226
static FMetalRHICommandContext & Get(FRHICommandListBase &CmdList)
Definition MetalRHIContext.h:53
void NewPayload()
Definition MetalRHIContext.h:243
TSharedRef< FMetalQueryBufferPool, ESPMode::ThreadSafe > GetQueryBufferPool()
Definition MetalRHIContext.h:314
FMetalCommandQueue & CommandQueue
Definition MetalRHIContext.h:352
TArray< FMetalSyncPointRef > ToWait
Definition MetalRHIContext.h:263
FMetalParallelRenderPassInfo * ParallelRenderPassInfo
Definition MetalRHIContext.h:386
FMetalPayload * GetPayload(EPhase Phase)
Definition MetalRHIContext.h:232
class FMetalProfiler * GetProfiler() const
Definition MetalRHIContext.h:66
TArray< FRHIUniformBuffer * > GlobalUniformBuffers
Definition MetalRHIContext.h:377
FMetalCommandList CommandList
Definition MetalRHIContext.h:355
void BeginRecursiveCommand()
Definition MetalRHIContext.h:294
Definition MetalRHIContext.h:397
void EnqueueFunction(UploadContextFunction Function)
Definition MetalRHIContext.h:406
TFunction< void(FMetalRHICommandContext *)> UploadContextFunction
Definition MetalRHIContext.h:402
~FMetalRHIUploadContext()
Definition MetalRHIContext.cpp:839
Definition RHIResources.h:1581
Definition RHICommandList.h:455
bool IsBottomOfPipe() const
Definition RHICommandList.h:653
IRHICommandContext & GetContext()
Definition RHICommandList.h:686
Definition RHIResources.h:1078
Definition RHIResources.h:1018
Definition RHIResources.h:5541
Definition RHIResources.h:4073
Definition RHIResources.h:2387
Definition RHIResources.h:1058
Definition RHIResources.h:947
Definition RHIResources.h:1115
Definition RHIResources.h:3755
Definition RHIResources.h:984
Definition RHIResources.h:2444
Definition RHIResources.h:4018
Definition RHIResources.h:4167
Definition RHIResources.h:3863
Definition RHIResources.h:3981
Definition RHIResources.h:2153
Definition RHIResources.h:3294
Definition RHIResources.h:2515
Definition RHIContext.h:693
IRHIComputeContext & GetLowestLevelContext()
Definition RHIContext.h:506
Definition RHIContext.h:573
Definition ArrayView.h:139
Definition AndroidPlatformMisc.h:14
Definition RHIPipeline.h:55
Definition RefCounting.h:454
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition MetalRHIContext.h:421
Definition RHICommandList.h:212
Definition RHICommandList.h:183
Definition RHIDefinitions.h:1401
Definition RHIResources.h:5548
Definition RHIResources.h:5248
Definition RHICommandList.h:267
Definition RHICommandList.h:248