Share via


IMTL4CommandBuffer Interface

Definition

This interface represents the Objective-C protocol MTL4CommandBuffer.

[Foundation.Protocol(BackwardsCompatibleCodeGeneration=false, Name="MTL4CommandBuffer", WrapperType=typeof(Metal.MTL4CommandBufferWrapper))]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="BeginCommandBuffer", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTL4CommandAllocator) }, Selector="beginCommandBufferWithAllocator:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="BeginCommandBuffer", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTL4CommandAllocator), typeof(Metal.MTL4CommandBufferOptions) }, Selector="beginCommandBufferWithAllocator:options:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EndCommandBuffer", Selector="endCommandBuffer")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTL4RenderPassDescriptor) }, ReturnType=typeof(Metal.IMTL4RenderCommandEncoder), Selector="renderCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.MTL4RenderPassDescriptor), typeof(Metal.MTL4RenderEncoderOptions) }, ReturnType=typeof(Metal.IMTL4RenderCommandEncoder), Selector="renderCommandEncoderWithDescriptor:options:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateComputeCommandEncoder", ReturnType=typeof(Metal.IMTL4ComputeCommandEncoder), Selector="computeCommandEncoder")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateMachineLearningCommandEncoder", ReturnType=typeof(Metal.IMTL4MachineLearningCommandEncoder), Selector="machineLearningCommandEncoder")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="UseResidencySet", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLResidencySet) }, Selector="useResidencySet:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="UseResidencySets", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr) }, Selector="useResidencySets:count:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PushDebugGroup", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.String) }, Selector="pushDebugGroup:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PopDebugGroup", Selector="popDebugGroup")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WriteTimestamp", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTL4CounterHeap), typeof(System.UIntPtr) }, Selector="writeTimestampIntoHeap:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ResolveCounterHeap", ParameterByRef=new System.Boolean[] { false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTL4CounterHeap), typeof(Foundation.NSRange), typeof(Metal.MTL4BufferRange), typeof(Metal.IMTLFence), typeof(Metal.IMTLFence) }, Selector="resolveCounterHeap:withRange:intoBuffer:waitFence:updateFence:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="device", IsProperty=true, IsRequired=true, IsStatic=false, Name="Device", PropertyType=typeof(Metal.IMTLDevice), Selector="device")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="label", IsProperty=true, IsRequired=true, IsStatic=false, Name="Label", PropertyType=typeof(System.String), Selector="label", SetterSelector="setLabel:")]
public interface IMTL4CommandBuffer : IDisposable, ObjCRuntime.INativeObject
[<Foundation.Protocol(BackwardsCompatibleCodeGeneration=false, Name="MTL4CommandBuffer", WrapperType=typeof(Metal.MTL4CommandBufferWrapper))>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="BeginCommandBuffer", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTL4CommandAllocator) }, Selector="beginCommandBufferWithAllocator:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="BeginCommandBuffer", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTL4CommandAllocator), typeof(Metal.MTL4CommandBufferOptions) }, Selector="beginCommandBufferWithAllocator:options:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EndCommandBuffer", Selector="endCommandBuffer")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTL4RenderPassDescriptor) }, ReturnType=typeof(Metal.IMTL4RenderCommandEncoder), Selector="renderCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.MTL4RenderPassDescriptor), typeof(Metal.MTL4RenderEncoderOptions) }, ReturnType=typeof(Metal.IMTL4RenderCommandEncoder), Selector="renderCommandEncoderWithDescriptor:options:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateComputeCommandEncoder", ReturnType=typeof(Metal.IMTL4ComputeCommandEncoder), Selector="computeCommandEncoder")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateMachineLearningCommandEncoder", ReturnType=typeof(Metal.IMTL4MachineLearningCommandEncoder), Selector="machineLearningCommandEncoder")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="UseResidencySet", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLResidencySet) }, Selector="useResidencySet:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="UseResidencySets", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr) }, Selector="useResidencySets:count:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PushDebugGroup", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.String) }, Selector="pushDebugGroup:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PopDebugGroup", Selector="popDebugGroup")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WriteTimestamp", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTL4CounterHeap), typeof(System.UIntPtr) }, Selector="writeTimestampIntoHeap:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ResolveCounterHeap", ParameterByRef=new System.Boolean[] { false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTL4CounterHeap), typeof(Foundation.NSRange), typeof(Metal.MTL4BufferRange), typeof(Metal.IMTLFence), typeof(Metal.IMTLFence) }, Selector="resolveCounterHeap:withRange:intoBuffer:waitFence:updateFence:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="device", IsProperty=true, IsRequired=true, IsStatic=false, Name="Device", PropertyType=typeof(Metal.IMTLDevice), Selector="device")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="label", IsProperty=true, IsRequired=true, IsStatic=false, Name="Label", PropertyType=typeof(System.String), Selector="label", SetterSelector="setLabel:")>]
type IMTL4CommandBuffer = interface
    interface INativeObject
    interface IDisposable
Attributes
Implements

Remarks

A class that implements this interface (and subclasses NSObject) will be exported to Objective-C as implementing the Objective-C protocol this interface represents.

A class may also implement members from this interface to implement members from the protocol.

Properties

Name Description
Device
Handle

Handle (pointer) to the unmanaged object representation.

(Inherited from INativeObject)
Label

Methods

Name Description
BeginCommandBuffer(IMTL4CommandAllocator, MTL4CommandBufferOptions)
BeginCommandBuffer(IMTL4CommandAllocator)
CreateComputeCommandEncoder()
CreateMachineLearningCommandEncoder()
CreateRenderCommandEncoder(MTL4RenderPassDescriptor, MTL4RenderEncoderOptions)
CreateRenderCommandEncoder(MTL4RenderPassDescriptor)
EndCommandBuffer()
PopDebugGroup()
PushDebugGroup(String)
ResolveCounterHeap(IMTL4CounterHeap, NSRange, MTL4BufferRange, IMTLFence, IMTLFence)
UseResidencySet(IMTLResidencySet)
UseResidencySets(IMTLResidencySet[])

Marks the specified residency sets as part of the current command buffer execution.

UseResidencySets(IntPtr, UIntPtr)
WriteTimestamp(IMTL4CounterHeap, UIntPtr)

Extension Methods

Name Description
GetHandle(INativeObject)
GetNonNullHandle(INativeObject, String)

Applies to