Share via


IMTLComputeCommandEncoder Interface

Definition

Protocol for encoding and running parallel commands on a GPU.

[Foundation.Protocol(Name="MTLComputeCommandEncoder", WrapperType=typeof(Metal.MTLComputeCommandEncoderWrapper))]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetComputePipelineState", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLComputePipelineState) }, Selector="setComputePipelineState:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBuffer", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setBuffer:offset:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetTexture", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(System.UIntPtr) }, Selector="setTexture:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetSamplerState", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLSamplerState), typeof(System.UIntPtr) }, Selector="setSamplerState:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetSamplerState", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLSamplerState), typeof(System.Single), typeof(System.Single), typeof(System.UIntPtr) }, Selector="setSamplerState:lodMinClamp:lodMaxClamp:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetThreadgroupMemoryLength", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setThreadgroupMemoryLength:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DispatchThreadgroups", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLSize), typeof(Metal.MTLSize) }, Selector="dispatchThreadgroups:threadsPerThreadgroup:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DispatchThreadgroups", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(Metal.MTLSize) }, Selector="dispatchThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerThreadgroup:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBuffers", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.IntPtr), typeof(Foundation.NSRange) }, Selector="setBuffers:offsets:withRange:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetSamplerStates", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLSamplerState[]), typeof(System.IntPtr), typeof(System.IntPtr), typeof(Foundation.NSRange) }, Selector="setSamplerStates:lodMinClamps:lodMaxClamps:withRange:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetSamplerStates", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLSamplerState[]), typeof(Foundation.NSRange) }, Selector="setSamplerStates:withRange:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetTextures", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture[]), typeof(Foundation.NSRange) }, Selector="setTextures:withRange:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBufferOffset", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setBufferOffset:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBytes", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setBytes:length:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetStage", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRegion) }, Selector="setStageInRegion:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetStageInRegion", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr) }, Selector="setStageInRegionWithIndirectBuffer:indirectBufferOffset:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Update", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLFence) }, Selector="updateFence:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Wait", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLFence) }, Selector="waitForFence:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DispatchThreads", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLSize), typeof(Metal.MTLSize) }, Selector="dispatchThreads:threadsPerThreadgroup:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="UseResource", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLResource), typeof(Metal.MTLResourceUsage) }, Selector="useResource:usage:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="UseResources", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLResource[]), typeof(System.UIntPtr), typeof(Metal.MTLResourceUsage) }, Selector="useResources:count:usage:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="UseHeap", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLHeap) }, Selector="useHeap:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="UseHeaps", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLHeap[]), typeof(System.UIntPtr) }, Selector="useHeaps:count:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetImageblock", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setImageblockWidth:height:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="MemoryBarrier", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLBarrierScope) }, Selector="memoryBarrierWithScope:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="MemoryBarrier", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLResource[]), typeof(System.UIntPtr) }, Selector="memoryBarrierWithResources:count:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ExecuteCommands", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIndirectCommandBuffer), typeof(Foundation.NSRange) }, Selector="executeCommandsInBuffer:withRange:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ExecuteCommands", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIndirectCommandBuffer), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr) }, Selector="executeCommandsInBuffer:indirectBuffer:indirectBufferOffset:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SampleCounters", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLCounterSampleBuffer), typeof(System.UIntPtr), typeof(System.Boolean) }, Selector="sampleCountersInBuffer:atSampleIndex:withBarrier:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetVisibleFunctionTable", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLVisibleFunctionTable), typeof(System.UIntPtr) }, Selector="setVisibleFunctionTable:atBufferIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetVisibleFunctionTables", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLVisibleFunctionTable[]), typeof(Foundation.NSRange) }, Selector="setVisibleFunctionTables:withBufferRange:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetIntersectionFunctionTable", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIntersectionFunctionTable), typeof(System.UIntPtr) }, Selector="setIntersectionFunctionTable:atBufferIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetIntersectionFunctionTables", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIntersectionFunctionTable[]), typeof(Foundation.NSRange) }, Selector="setIntersectionFunctionTables:withBufferRange:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLAccelerationStructure), typeof(System.UIntPtr) }, Selector="setAccelerationStructure:atBufferIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBuffer", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setBuffer:offset:attributeStride:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBuffers", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.IntPtr), typeof(System.IntPtr), typeof(Foundation.NSRange) }, Selector="setBuffers:offsets:attributeStrides:withRange:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBufferOffset", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setBufferOffset:attributeStride:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBytes", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setBytes:length:attributeStride:atIndex:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="dispatchType", IsProperty=true, IsRequired=true, IsStatic=false, Name="DispatchType", PropertyType=typeof(Metal.MTLDispatchType), Selector="dispatchType")]
public interface IMTLComputeCommandEncoder : IDisposable, Metal.IMTLCommandEncoder
[<Foundation.Protocol(Name="MTLComputeCommandEncoder", WrapperType=typeof(Metal.MTLComputeCommandEncoderWrapper))>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetComputePipelineState", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLComputePipelineState) }, Selector="setComputePipelineState:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBuffer", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setBuffer:offset:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetTexture", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(System.UIntPtr) }, Selector="setTexture:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetSamplerState", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLSamplerState), typeof(System.UIntPtr) }, Selector="setSamplerState:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetSamplerState", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLSamplerState), typeof(System.Single), typeof(System.Single), typeof(System.UIntPtr) }, Selector="setSamplerState:lodMinClamp:lodMaxClamp:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetThreadgroupMemoryLength", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setThreadgroupMemoryLength:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DispatchThreadgroups", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLSize), typeof(Metal.MTLSize) }, Selector="dispatchThreadgroups:threadsPerThreadgroup:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DispatchThreadgroups", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(Metal.MTLSize) }, Selector="dispatchThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerThreadgroup:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBuffers", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.IntPtr), typeof(Foundation.NSRange) }, Selector="setBuffers:offsets:withRange:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetSamplerStates", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLSamplerState[]), typeof(System.IntPtr), typeof(System.IntPtr), typeof(Foundation.NSRange) }, Selector="setSamplerStates:lodMinClamps:lodMaxClamps:withRange:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetSamplerStates", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLSamplerState[]), typeof(Foundation.NSRange) }, Selector="setSamplerStates:withRange:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetTextures", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture[]), typeof(Foundation.NSRange) }, Selector="setTextures:withRange:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBufferOffset", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setBufferOffset:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBytes", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setBytes:length:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetStage", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRegion) }, Selector="setStageInRegion:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetStageInRegion", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr) }, Selector="setStageInRegionWithIndirectBuffer:indirectBufferOffset:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Update", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLFence) }, Selector="updateFence:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Wait", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLFence) }, Selector="waitForFence:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DispatchThreads", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLSize), typeof(Metal.MTLSize) }, Selector="dispatchThreads:threadsPerThreadgroup:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="UseResource", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLResource), typeof(Metal.MTLResourceUsage) }, Selector="useResource:usage:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="UseResources", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLResource[]), typeof(System.UIntPtr), typeof(Metal.MTLResourceUsage) }, Selector="useResources:count:usage:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="UseHeap", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLHeap) }, Selector="useHeap:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="UseHeaps", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLHeap[]), typeof(System.UIntPtr) }, Selector="useHeaps:count:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetImageblock", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setImageblockWidth:height:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="MemoryBarrier", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLBarrierScope) }, Selector="memoryBarrierWithScope:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="MemoryBarrier", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLResource[]), typeof(System.UIntPtr) }, Selector="memoryBarrierWithResources:count:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ExecuteCommands", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIndirectCommandBuffer), typeof(Foundation.NSRange) }, Selector="executeCommandsInBuffer:withRange:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ExecuteCommands", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIndirectCommandBuffer), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr) }, Selector="executeCommandsInBuffer:indirectBuffer:indirectBufferOffset:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SampleCounters", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLCounterSampleBuffer), typeof(System.UIntPtr), typeof(System.Boolean) }, Selector="sampleCountersInBuffer:atSampleIndex:withBarrier:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetVisibleFunctionTable", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLVisibleFunctionTable), typeof(System.UIntPtr) }, Selector="setVisibleFunctionTable:atBufferIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetVisibleFunctionTables", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLVisibleFunctionTable[]), typeof(Foundation.NSRange) }, Selector="setVisibleFunctionTables:withBufferRange:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetIntersectionFunctionTable", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIntersectionFunctionTable), typeof(System.UIntPtr) }, Selector="setIntersectionFunctionTable:atBufferIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetIntersectionFunctionTables", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIntersectionFunctionTable[]), typeof(Foundation.NSRange) }, Selector="setIntersectionFunctionTables:withBufferRange:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLAccelerationStructure), typeof(System.UIntPtr) }, Selector="setAccelerationStructure:atBufferIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBuffer", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setBuffer:offset:attributeStride:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBuffers", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.IntPtr), typeof(System.IntPtr), typeof(Foundation.NSRange) }, Selector="setBuffers:offsets:attributeStrides:withRange:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBufferOffset", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setBufferOffset:attributeStride:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBytes", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setBytes:length:attributeStride:atIndex:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="dispatchType", IsProperty=true, IsRequired=true, IsStatic=false, Name="DispatchType", PropertyType=typeof(Metal.MTLDispatchType), Selector="dispatchType")>]
type IMTLComputeCommandEncoder = interface
    interface INativeObject
    interface IDisposable
    interface IMTLCommandEncoder
Attributes
Implements

Properties

Name Description
Device (Inherited from IMTLCommandEncoder)
DispatchType
Handle

Handle (pointer) to the unmanaged object representation.

(Inherited from INativeObject)
Label (Inherited from IMTLCommandEncoder)

Methods

Name Description
BarrierAfterQueueStages(MTLStages, MTLStages) (Inherited from IMTLCommandEncoder)
DispatchThreadgroups(IMTLBuffer, UIntPtr, MTLSize)
DispatchThreadgroups(MTLSize, MTLSize)
DispatchThreads(MTLSize, MTLSize)
EndEncoding() (Inherited from IMTLCommandEncoder)
ExecuteCommands(IMTLIndirectCommandBuffer, IMTLBuffer, UIntPtr)
ExecuteCommands(IMTLIndirectCommandBuffer, NSRange)
InsertDebugSignpost(String) (Inherited from IMTLCommandEncoder)
MemoryBarrier(IMTLResource[], UIntPtr)
MemoryBarrier(MTLBarrierScope)
PopDebugGroup() (Inherited from IMTLCommandEncoder)
PushDebugGroup(String) (Inherited from IMTLCommandEncoder)
SampleCounters(IMTLCounterSampleBuffer, UIntPtr, Boolean)
SetAccelerationStructure(IMTLAccelerationStructure, UIntPtr)
SetBuffer(IMTLBuffer, UIntPtr, UIntPtr, UIntPtr)
SetBuffer(IMTLBuffer, UIntPtr, UIntPtr)
SetBufferOffset(UIntPtr, UIntPtr, UIntPtr)
SetBufferOffset(UIntPtr, UIntPtr)
SetBuffers(IntPtr, IntPtr, IntPtr, NSRange)
SetBuffers(IntPtr, IntPtr, NSRange)

Encodes buffers to the argument buffer.

SetBytes(IntPtr, UIntPtr, UIntPtr, UIntPtr)
SetBytes(IntPtr, UIntPtr, UIntPtr)
SetComputePipelineState(IMTLComputePipelineState)
SetImageblock(UIntPtr, UIntPtr)
SetIntersectionFunctionTable(IMTLIntersectionFunctionTable, UIntPtr)
SetIntersectionFunctionTables(IMTLIntersectionFunctionTable[], NSRange)
SetSamplerState(IMTLSamplerState, Single, Single, UIntPtr)
SetSamplerState(IMTLSamplerState, UIntPtr)
SetSamplerStates(IMTLSamplerState[], IntPtr, IntPtr, NSRange)
SetSamplerStates(IMTLSamplerState[], NSRange)
SetStage(MTLRegion)
SetStageInRegion(IMTLBuffer, UIntPtr)
SetTexture(IMTLTexture, UIntPtr)
SetTextures(IMTLTexture[], NSRange)
SetThreadgroupMemoryLength(UIntPtr, UIntPtr)
SetVisibleFunctionTable(IMTLVisibleFunctionTable, UIntPtr)
SetVisibleFunctionTables(IMTLVisibleFunctionTable[], NSRange)
Update(IMTLFence)

Captures all GPU work up to the current fence.

UseHeap(IMTLHeap)
UseHeaps(IMTLHeap[], UIntPtr)
UseResource(IMTLResource, MTLResourceUsage)
UseResources(IMTLResource[], UIntPtr, MTLResourceUsage)
Wait(IMTLFence)

Prevents additional GPU work by the encoder until the fence is reached.

Extension Methods

Name Description
SetBuffers(IMTLComputeCommandEncoder, IMTLBuffer[], UIntPtr[], NSRange)
SetAccelerationStructure(IMTLComputeCommandEncoder, IMTLAccelerationStructure, UIntPtr)
SetBuffer(IMTLComputeCommandEncoder, IMTLBuffer, UIntPtr, UIntPtr, UIntPtr)
SetBufferOffset(IMTLComputeCommandEncoder, UIntPtr, UIntPtr, UIntPtr)
SetBuffers(IMTLComputeCommandEncoder, IntPtr, IntPtr, IntPtr, NSRange)
SetBytes(IMTLComputeCommandEncoder, IntPtr, UIntPtr, UIntPtr, UIntPtr)
SetIntersectionFunctionTable(IMTLComputeCommandEncoder, IMTLIntersectionFunctionTable, UIntPtr)
SetIntersectionFunctionTables(IMTLComputeCommandEncoder, IMTLIntersectionFunctionTable[], NSRange)
SetVisibleFunctionTable(IMTLComputeCommandEncoder, IMTLVisibleFunctionTable, UIntPtr)
SetVisibleFunctionTables(IMTLComputeCommandEncoder, IMTLVisibleFunctionTable[], NSRange)
GetHandle(INativeObject)
GetNonNullHandle(INativeObject, String)

Applies to