Share via


IMTLCommandBuffer Interface

Definition

Protocol for commands that are run on a GPU

[Foundation.Protocol(Name="MTLCommandBuffer", WrapperType=typeof(Metal.MTLCommandBufferWrapper))]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Enqueue", Selector="enqueue")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Commit", Selector="commit")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddScheduledHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V220) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addScheduledHandler:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilScheduled", Selector="waitUntilScheduled")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddCompletedHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V220) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addCompletedHandler:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilCompleted", Selector="waitUntilCompleted")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoderDispatch", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLDispatchType) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDispatchType:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeWait", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeWaitForEvent:value:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeSignal", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeSignalEvent:value:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateParallelRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLParallelRenderCommandEncoder), Selector="parallelRenderCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable) }, Selector="presentDrawable:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:atTime:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawableAfter", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:afterMinimumDuration:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLRenderCommandEncoder), Selector="renderCommandEncoderWithDescriptor:")]
[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="CreateComputeCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLComputePassDescriptor) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateBlitCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLBlitPassDescriptor) }, ReturnType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateResourceStateCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLResourceStatePassDescriptor) }, ReturnType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoder")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLAccelerationStructurePassDescriptor) }, ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoderWithDescriptor:")]
[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(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="commandQueue", IsProperty=true, IsRequired=true, IsStatic=false, Name="CommandQueue", PropertyType=typeof(Metal.IMTLCommandQueue), Selector="commandQueue")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="retainedReferences", IsProperty=true, IsRequired=true, IsStatic=false, Name="RetainedReferences", PropertyType=typeof(System.Boolean), Selector="retainedReferences")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="label", IsProperty=true, IsRequired=true, IsStatic=false, Name="Label", PropertyType=typeof(System.String), Selector="label", SetterSelector="setLabel:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="status", IsProperty=true, IsRequired=true, IsStatic=false, Name="Status", PropertyType=typeof(Metal.MTLCommandBufferStatus), Selector="status")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="error", IsProperty=true, IsRequired=true, IsStatic=false, Name="Error", PropertyType=typeof(Foundation.NSError), Selector="error")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="blitCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="BlitCommandEncoder", PropertyType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoder")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="computeCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoder", PropertyType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoder")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelStartTime", PropertyType=typeof(System.Double), Selector="kernelStartTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelEndTime", PropertyType=typeof(System.Double), Selector="kernelEndTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuStartTime", PropertyType=typeof(System.Double), Selector="GPUStartTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuEndTime", PropertyType=typeof(System.Double), Selector="GPUEndTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="resourceStateCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ResourceStateCommandEncoder", PropertyType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoder")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="errorOptions", IsProperty=true, IsRequired=true, IsStatic=false, Name="ErrorOptions", PropertyType=typeof(Metal.MTLCommandBufferErrorOption), Selector="errorOptions")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="logs", IsProperty=true, IsRequired=true, IsStatic=false, Name="Logs", PropertyType=typeof(Metal.IMTLLogContainer), Selector="logs")]
public interface IMTLCommandBuffer : IDisposable, ObjCRuntime.INativeObject
[Foundation.Protocol(Name="MTLCommandBuffer", WrapperType=typeof(Metal.MTLCommandBufferWrapper))]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Enqueue", Selector="enqueue")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Commit", Selector="commit")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilScheduled", Selector="waitUntilScheduled")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilCompleted", Selector="waitUntilCompleted")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoderDispatch", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLDispatchType) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDispatchType:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeWait", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeWaitForEvent:value:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeSignal", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeSignalEvent:value:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateParallelRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLParallelRenderCommandEncoder), Selector="parallelRenderCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable) }, Selector="presentDrawable:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:atTime:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawableAfter", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:afterMinimumDuration:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLRenderCommandEncoder), Selector="renderCommandEncoderWithDescriptor:")]
[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="CreateComputeCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLComputePassDescriptor) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateBlitCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLBlitPassDescriptor) }, ReturnType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateResourceStateCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLResourceStatePassDescriptor) }, ReturnType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoder")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLAccelerationStructurePassDescriptor) }, ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoderWithDescriptor:")]
[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(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="commandQueue", IsProperty=true, IsRequired=true, IsStatic=false, Name="CommandQueue", PropertyType=typeof(Metal.IMTLCommandQueue), Selector="commandQueue")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="retainedReferences", IsProperty=true, IsRequired=true, IsStatic=false, Name="RetainedReferences", PropertyType=typeof(System.Boolean), Selector="retainedReferences")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="label", IsProperty=true, IsRequired=true, IsStatic=false, Name="Label", PropertyType=typeof(System.String), Selector="label", SetterSelector="setLabel:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="status", IsProperty=true, IsRequired=true, IsStatic=false, Name="Status", PropertyType=typeof(Metal.MTLCommandBufferStatus), Selector="status")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="error", IsProperty=true, IsRequired=true, IsStatic=false, Name="Error", PropertyType=typeof(Foundation.NSError), Selector="error")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="blitCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="BlitCommandEncoder", PropertyType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoder")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="computeCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoder", PropertyType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoder")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelStartTime", PropertyType=typeof(System.Double), Selector="kernelStartTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelEndTime", PropertyType=typeof(System.Double), Selector="kernelEndTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuStartTime", PropertyType=typeof(System.Double), Selector="GPUStartTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuEndTime", PropertyType=typeof(System.Double), Selector="GPUEndTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="resourceStateCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ResourceStateCommandEncoder", PropertyType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoder")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="errorOptions", IsProperty=true, IsRequired=true, IsStatic=false, Name="ErrorOptions", PropertyType=typeof(Metal.MTLCommandBufferErrorOption), Selector="errorOptions")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="logs", IsProperty=true, IsRequired=true, IsStatic=false, Name="Logs", PropertyType=typeof(Metal.IMTLLogContainer), Selector="logs")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddScheduledHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V205) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addScheduledHandler:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddCompletedHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V205) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addCompletedHandler:")]
public interface IMTLCommandBuffer : IDisposable, ObjCRuntime.INativeObject
[Foundation.Protocol(Name="MTLCommandBuffer", WrapperType=typeof(Metal.MTLCommandBufferWrapper))]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Enqueue", Selector="enqueue")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Commit", Selector="commit")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilScheduled", Selector="waitUntilScheduled")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilCompleted", Selector="waitUntilCompleted")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoderDispatch", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLDispatchType) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDispatchType:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeWait", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeWaitForEvent:value:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeSignal", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeSignalEvent:value:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateParallelRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLParallelRenderCommandEncoder), Selector="parallelRenderCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable) }, Selector="presentDrawable:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:atTime:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawableAfter", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:afterMinimumDuration:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLRenderCommandEncoder), Selector="renderCommandEncoderWithDescriptor:")]
[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="CreateComputeCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLComputePassDescriptor) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateBlitCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLBlitPassDescriptor) }, ReturnType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateResourceStateCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLResourceStatePassDescriptor) }, ReturnType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoder")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLAccelerationStructurePassDescriptor) }, ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoderWithDescriptor:")]
[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(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="commandQueue", IsProperty=true, IsRequired=true, IsStatic=false, Name="CommandQueue", PropertyType=typeof(Metal.IMTLCommandQueue), Selector="commandQueue")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="retainedReferences", IsProperty=true, IsRequired=true, IsStatic=false, Name="RetainedReferences", PropertyType=typeof(System.Boolean), Selector="retainedReferences")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="label", IsProperty=true, IsRequired=true, IsStatic=false, Name="Label", PropertyType=typeof(System.String), Selector="label", SetterSelector="setLabel:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="status", IsProperty=true, IsRequired=true, IsStatic=false, Name="Status", PropertyType=typeof(Metal.MTLCommandBufferStatus), Selector="status")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="error", IsProperty=true, IsRequired=true, IsStatic=false, Name="Error", PropertyType=typeof(Foundation.NSError), Selector="error")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="blitCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="BlitCommandEncoder", PropertyType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoder")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="computeCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoder", PropertyType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoder")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelStartTime", PropertyType=typeof(System.Double), Selector="kernelStartTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelEndTime", PropertyType=typeof(System.Double), Selector="kernelEndTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuStartTime", PropertyType=typeof(System.Double), Selector="GPUStartTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuEndTime", PropertyType=typeof(System.Double), Selector="GPUEndTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="resourceStateCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ResourceStateCommandEncoder", PropertyType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoder")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="errorOptions", IsProperty=true, IsRequired=true, IsStatic=false, Name="ErrorOptions", PropertyType=typeof(Metal.MTLCommandBufferErrorOption), Selector="errorOptions")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="logs", IsProperty=true, IsRequired=true, IsStatic=false, Name="Logs", PropertyType=typeof(Metal.IMTLLogContainer), Selector="logs")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddScheduledHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V83) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addScheduledHandler:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddCompletedHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V83) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addCompletedHandler:")]
public interface IMTLCommandBuffer : IDisposable, ObjCRuntime.INativeObject
[Foundation.Protocol(Name="MTLCommandBuffer", WrapperType=typeof(Metal.MTLCommandBufferWrapper))]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Enqueue", Selector="enqueue")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Commit", Selector="commit")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilScheduled", Selector="waitUntilScheduled")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilCompleted", Selector="waitUntilCompleted")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoderDispatch", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLDispatchType) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDispatchType:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeWait", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeWaitForEvent:value:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeSignal", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeSignalEvent:value:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateParallelRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLParallelRenderCommandEncoder), Selector="parallelRenderCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable) }, Selector="presentDrawable:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:atTime:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawableAfter", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:afterMinimumDuration:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLRenderCommandEncoder), Selector="renderCommandEncoderWithDescriptor:")]
[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="CreateComputeCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLComputePassDescriptor) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateBlitCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLBlitPassDescriptor) }, ReturnType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateResourceStateCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLResourceStatePassDescriptor) }, ReturnType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoderWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoder")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLAccelerationStructurePassDescriptor) }, ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoderWithDescriptor:")]
[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(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="commandQueue", IsProperty=true, IsRequired=true, IsStatic=false, Name="CommandQueue", PropertyType=typeof(Metal.IMTLCommandQueue), Selector="commandQueue")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="retainedReferences", IsProperty=true, IsRequired=true, IsStatic=false, Name="RetainedReferences", PropertyType=typeof(System.Boolean), Selector="retainedReferences")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="label", IsProperty=true, IsRequired=true, IsStatic=false, Name="Label", PropertyType=typeof(System.String), Selector="label", SetterSelector="setLabel:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="status", IsProperty=true, IsRequired=true, IsStatic=false, Name="Status", PropertyType=typeof(Metal.MTLCommandBufferStatus), Selector="status")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="error", IsProperty=true, IsRequired=true, IsStatic=false, Name="Error", PropertyType=typeof(Foundation.NSError), Selector="error")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="blitCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="BlitCommandEncoder", PropertyType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoder")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="computeCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoder", PropertyType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoder")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelStartTime", PropertyType=typeof(System.Double), Selector="kernelStartTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelEndTime", PropertyType=typeof(System.Double), Selector="kernelEndTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuStartTime", PropertyType=typeof(System.Double), Selector="GPUStartTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuEndTime", PropertyType=typeof(System.Double), Selector="GPUEndTime")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="resourceStateCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ResourceStateCommandEncoder", PropertyType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoder")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="errorOptions", IsProperty=true, IsRequired=true, IsStatic=false, Name="ErrorOptions", PropertyType=typeof(Metal.MTLCommandBufferErrorOption), Selector="errorOptions")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="logs", IsProperty=true, IsRequired=true, IsStatic=false, Name="Logs", PropertyType=typeof(Metal.IMTLLogContainer), Selector="logs")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddScheduledHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V62) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addScheduledHandler:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddCompletedHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V62) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addCompletedHandler:")]
public interface IMTLCommandBuffer : IDisposable, ObjCRuntime.INativeObject
[<Foundation.Protocol(Name="MTLCommandBuffer", WrapperType=typeof(Metal.MTLCommandBufferWrapper))>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Enqueue", Selector="enqueue")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Commit", Selector="commit")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddScheduledHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V220) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addScheduledHandler:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilScheduled", Selector="waitUntilScheduled")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddCompletedHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V220) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addCompletedHandler:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilCompleted", Selector="waitUntilCompleted")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoderDispatch", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLDispatchType) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDispatchType:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeWait", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeWaitForEvent:value:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeSignal", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeSignalEvent:value:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateParallelRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLParallelRenderCommandEncoder), Selector="parallelRenderCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable) }, Selector="presentDrawable:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:atTime:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawableAfter", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:afterMinimumDuration:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLRenderCommandEncoder), Selector="renderCommandEncoderWithDescriptor:")>]
[<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="CreateComputeCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLComputePassDescriptor) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateBlitCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLBlitPassDescriptor) }, ReturnType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateResourceStateCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLResourceStatePassDescriptor) }, ReturnType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoder")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLAccelerationStructurePassDescriptor) }, ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoderWithDescriptor:")>]
[<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(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="commandQueue", IsProperty=true, IsRequired=true, IsStatic=false, Name="CommandQueue", PropertyType=typeof(Metal.IMTLCommandQueue), Selector="commandQueue")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="retainedReferences", IsProperty=true, IsRequired=true, IsStatic=false, Name="RetainedReferences", PropertyType=typeof(System.Boolean), Selector="retainedReferences")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="label", IsProperty=true, IsRequired=true, IsStatic=false, Name="Label", PropertyType=typeof(System.String), Selector="label", SetterSelector="setLabel:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="status", IsProperty=true, IsRequired=true, IsStatic=false, Name="Status", PropertyType=typeof(Metal.MTLCommandBufferStatus), Selector="status")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="error", IsProperty=true, IsRequired=true, IsStatic=false, Name="Error", PropertyType=typeof(Foundation.NSError), Selector="error")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="blitCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="BlitCommandEncoder", PropertyType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoder")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="computeCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoder", PropertyType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoder")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelStartTime", PropertyType=typeof(System.Double), Selector="kernelStartTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelEndTime", PropertyType=typeof(System.Double), Selector="kernelEndTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuStartTime", PropertyType=typeof(System.Double), Selector="GPUStartTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuEndTime", PropertyType=typeof(System.Double), Selector="GPUEndTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="resourceStateCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ResourceStateCommandEncoder", PropertyType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoder")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="errorOptions", IsProperty=true, IsRequired=true, IsStatic=false, Name="ErrorOptions", PropertyType=typeof(Metal.MTLCommandBufferErrorOption), Selector="errorOptions")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="logs", IsProperty=true, IsRequired=true, IsStatic=false, Name="Logs", PropertyType=typeof(Metal.IMTLLogContainer), Selector="logs")>]
type IMTLCommandBuffer = interface
    interface INativeObject
    interface IDisposable
[<Foundation.Protocol(Name="MTLCommandBuffer", WrapperType=typeof(Metal.MTLCommandBufferWrapper))>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Enqueue", Selector="enqueue")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Commit", Selector="commit")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilScheduled", Selector="waitUntilScheduled")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilCompleted", Selector="waitUntilCompleted")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoderDispatch", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLDispatchType) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDispatchType:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeWait", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeWaitForEvent:value:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeSignal", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeSignalEvent:value:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateParallelRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLParallelRenderCommandEncoder), Selector="parallelRenderCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable) }, Selector="presentDrawable:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:atTime:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawableAfter", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:afterMinimumDuration:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLRenderCommandEncoder), Selector="renderCommandEncoderWithDescriptor:")>]
[<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="CreateComputeCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLComputePassDescriptor) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateBlitCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLBlitPassDescriptor) }, ReturnType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateResourceStateCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLResourceStatePassDescriptor) }, ReturnType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoder")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLAccelerationStructurePassDescriptor) }, ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoderWithDescriptor:")>]
[<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(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="commandQueue", IsProperty=true, IsRequired=true, IsStatic=false, Name="CommandQueue", PropertyType=typeof(Metal.IMTLCommandQueue), Selector="commandQueue")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="retainedReferences", IsProperty=true, IsRequired=true, IsStatic=false, Name="RetainedReferences", PropertyType=typeof(System.Boolean), Selector="retainedReferences")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="label", IsProperty=true, IsRequired=true, IsStatic=false, Name="Label", PropertyType=typeof(System.String), Selector="label", SetterSelector="setLabel:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="status", IsProperty=true, IsRequired=true, IsStatic=false, Name="Status", PropertyType=typeof(Metal.MTLCommandBufferStatus), Selector="status")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="error", IsProperty=true, IsRequired=true, IsStatic=false, Name="Error", PropertyType=typeof(Foundation.NSError), Selector="error")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="blitCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="BlitCommandEncoder", PropertyType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoder")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="computeCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoder", PropertyType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoder")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelStartTime", PropertyType=typeof(System.Double), Selector="kernelStartTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelEndTime", PropertyType=typeof(System.Double), Selector="kernelEndTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuStartTime", PropertyType=typeof(System.Double), Selector="GPUStartTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuEndTime", PropertyType=typeof(System.Double), Selector="GPUEndTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="resourceStateCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ResourceStateCommandEncoder", PropertyType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoder")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="errorOptions", IsProperty=true, IsRequired=true, IsStatic=false, Name="ErrorOptions", PropertyType=typeof(Metal.MTLCommandBufferErrorOption), Selector="errorOptions")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="logs", IsProperty=true, IsRequired=true, IsStatic=false, Name="Logs", PropertyType=typeof(Metal.IMTLLogContainer), Selector="logs")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddScheduledHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V205) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addScheduledHandler:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddCompletedHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V205) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addCompletedHandler:")>]
type IMTLCommandBuffer = interface
    interface INativeObject
    interface IDisposable
[<Foundation.Protocol(Name="MTLCommandBuffer", WrapperType=typeof(Metal.MTLCommandBufferWrapper))>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Enqueue", Selector="enqueue")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Commit", Selector="commit")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilScheduled", Selector="waitUntilScheduled")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilCompleted", Selector="waitUntilCompleted")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoderDispatch", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLDispatchType) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDispatchType:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeWait", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeWaitForEvent:value:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeSignal", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeSignalEvent:value:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateParallelRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLParallelRenderCommandEncoder), Selector="parallelRenderCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable) }, Selector="presentDrawable:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:atTime:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawableAfter", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:afterMinimumDuration:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLRenderCommandEncoder), Selector="renderCommandEncoderWithDescriptor:")>]
[<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="CreateComputeCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLComputePassDescriptor) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateBlitCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLBlitPassDescriptor) }, ReturnType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateResourceStateCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLResourceStatePassDescriptor) }, ReturnType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoder")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLAccelerationStructurePassDescriptor) }, ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoderWithDescriptor:")>]
[<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(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="commandQueue", IsProperty=true, IsRequired=true, IsStatic=false, Name="CommandQueue", PropertyType=typeof(Metal.IMTLCommandQueue), Selector="commandQueue")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="retainedReferences", IsProperty=true, IsRequired=true, IsStatic=false, Name="RetainedReferences", PropertyType=typeof(System.Boolean), Selector="retainedReferences")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="label", IsProperty=true, IsRequired=true, IsStatic=false, Name="Label", PropertyType=typeof(System.String), Selector="label", SetterSelector="setLabel:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="status", IsProperty=true, IsRequired=true, IsStatic=false, Name="Status", PropertyType=typeof(Metal.MTLCommandBufferStatus), Selector="status")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="error", IsProperty=true, IsRequired=true, IsStatic=false, Name="Error", PropertyType=typeof(Foundation.NSError), Selector="error")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="blitCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="BlitCommandEncoder", PropertyType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoder")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="computeCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoder", PropertyType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoder")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelStartTime", PropertyType=typeof(System.Double), Selector="kernelStartTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelEndTime", PropertyType=typeof(System.Double), Selector="kernelEndTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuStartTime", PropertyType=typeof(System.Double), Selector="GPUStartTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuEndTime", PropertyType=typeof(System.Double), Selector="GPUEndTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="resourceStateCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ResourceStateCommandEncoder", PropertyType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoder")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="errorOptions", IsProperty=true, IsRequired=true, IsStatic=false, Name="ErrorOptions", PropertyType=typeof(Metal.MTLCommandBufferErrorOption), Selector="errorOptions")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="logs", IsProperty=true, IsRequired=true, IsStatic=false, Name="Logs", PropertyType=typeof(Metal.IMTLLogContainer), Selector="logs")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddScheduledHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V83) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addScheduledHandler:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddCompletedHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V83) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addCompletedHandler:")>]
type IMTLCommandBuffer = interface
    interface INativeObject
    interface IDisposable
[<Foundation.Protocol(Name="MTLCommandBuffer", WrapperType=typeof(Metal.MTLCommandBufferWrapper))>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Enqueue", Selector="enqueue")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Commit", Selector="commit")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilScheduled", Selector="waitUntilScheduled")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WaitUntilCompleted", Selector="waitUntilCompleted")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoderDispatch", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLDispatchType) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDispatchType:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeWait", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeWaitForEvent:value:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="EncodeSignal", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLEvent), typeof(System.UInt64) }, Selector="encodeSignalEvent:value:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateParallelRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLParallelRenderCommandEncoder), Selector="parallelRenderCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable) }, Selector="presentDrawable:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawable", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:atTime:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="PresentDrawableAfter", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDrawable), typeof(System.Double) }, Selector="presentDrawable:afterMinimumDuration:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateRenderCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLRenderPassDescriptor) }, ReturnType=typeof(Metal.IMTLRenderCommandEncoder), Selector="renderCommandEncoderWithDescriptor:")>]
[<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="CreateComputeCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLComputePassDescriptor) }, ReturnType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateBlitCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLBlitPassDescriptor) }, ReturnType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateResourceStateCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLResourceStatePassDescriptor) }, ReturnType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoderWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoder")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructureCommandEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLAccelerationStructurePassDescriptor) }, ReturnType=typeof(Metal.IMTLAccelerationStructureCommandEncoder), Selector="accelerationStructureCommandEncoderWithDescriptor:")>]
[<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(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="commandQueue", IsProperty=true, IsRequired=true, IsStatic=false, Name="CommandQueue", PropertyType=typeof(Metal.IMTLCommandQueue), Selector="commandQueue")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="retainedReferences", IsProperty=true, IsRequired=true, IsStatic=false, Name="RetainedReferences", PropertyType=typeof(System.Boolean), Selector="retainedReferences")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="label", IsProperty=true, IsRequired=true, IsStatic=false, Name="Label", PropertyType=typeof(System.String), Selector="label", SetterSelector="setLabel:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="status", IsProperty=true, IsRequired=true, IsStatic=false, Name="Status", PropertyType=typeof(Metal.MTLCommandBufferStatus), Selector="status")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="error", IsProperty=true, IsRequired=true, IsStatic=false, Name="Error", PropertyType=typeof(Foundation.NSError), Selector="error")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="blitCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="BlitCommandEncoder", PropertyType=typeof(Metal.IMTLBlitCommandEncoder), Selector="blitCommandEncoder")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="computeCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ComputeCommandEncoder", PropertyType=typeof(Metal.IMTLComputeCommandEncoder), Selector="computeCommandEncoder")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelStartTime", PropertyType=typeof(System.Double), Selector="kernelStartTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="kernelEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="KernelEndTime", PropertyType=typeof(System.Double), Selector="kernelEndTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUStartTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuStartTime", PropertyType=typeof(System.Double), Selector="GPUStartTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="GPUEndTime", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuEndTime", PropertyType=typeof(System.Double), Selector="GPUEndTime")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="resourceStateCommandEncoder", IsProperty=true, IsRequired=true, IsStatic=false, Name="ResourceStateCommandEncoder", PropertyType=typeof(Metal.IMTLResourceStateCommandEncoder), Selector="resourceStateCommandEncoder")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="errorOptions", IsProperty=true, IsRequired=true, IsStatic=false, Name="ErrorOptions", PropertyType=typeof(Metal.MTLCommandBufferErrorOption), Selector="errorOptions")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="logs", IsProperty=true, IsRequired=true, IsStatic=false, Name="Logs", PropertyType=typeof(Metal.IMTLLogContainer), Selector="logs")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddScheduledHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V62) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addScheduledHandler:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="AddCompletedHandler", ParameterBlockProxy=new System.Type[] { typeof(ObjCRuntime.Trampolines+NIDActionArity1V62) }, ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.Action<Metal.IMTLCommandBuffer>) }, Selector="addCompletedHandler:")>]
type IMTLCommandBuffer = interface
    interface INativeObject
    interface IDisposable
Derived
Attributes
Implements

Properties

Name Description
BlitCommandEncoder
CommandQueue
ComputeCommandEncoder
Device
Error
ErrorOptions
GpuEndTime

Returns the time, in seconds, when the GPU stopped running the command buffer.

GpuStartTime

Returns the time, in seconds, when the GPU started running the command buffer.

Handle

Handle (pointer) to the unmanaged object representation.

(Inherited from INativeObject)
KernelEndTime

Returns the time, in seconds, when the GPU finished scheduling the command buffer.

KernelStartTime

Returns the time, in seconds, when the GPU started scheduling the command buffer.

Label
Logs
ResourceStateCommandEncoder
RetainedReferences
Status

Methods

Name Description
AddCompletedHandler(Action<IMTLCommandBuffer>)
AddScheduledHandler(Action<IMTLCommandBuffer>)
Commit()
ComputeCommandEncoderDispatch(MTLDispatchType)
CreateAccelerationStructureCommandEncoder()
CreateAccelerationStructureCommandEncoder(MTLAccelerationStructurePassDescriptor)
CreateBlitCommandEncoder(MTLBlitPassDescriptor)
CreateComputeCommandEncoder(MTLComputePassDescriptor)
CreateParallelRenderCommandEncoder(MTLRenderPassDescriptor)
CreateRenderCommandEncoder(MTLRenderPassDescriptor)
CreateResourceStateCommandEncoder(MTLResourceStatePassDescriptor)
EncodeSignal(IMTLEvent, UInt64)
EncodeWait(IMTLEvent, UInt64)
Enqueue()
PopDebugGroup()
PresentDrawable(IMTLDrawable, Double)
PresentDrawable(IMTLDrawable)
PresentDrawableAfter(IMTLDrawable, Double)

Presents the specified drawable after the previous drawable has been displayed for duration seconds.

PushDebugGroup(String)
UseResidencySet(IMTLResidencySet)
UseResidencySets(IMTLResidencySet[])

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

UseResidencySets(IntPtr, UIntPtr)
WaitUntilCompleted()
WaitUntilScheduled()

Extension Methods

Name Description
CreateAccelerationStructureCommandEncoder(IMTLCommandBuffer, MTLAccelerationStructurePassDescriptor)
CreateAccelerationStructureCommandEncoder(IMTLCommandBuffer)
CreateResourceStateCommandEncoder(IMTLCommandBuffer, MTLResourceStatePassDescriptor)
GetResourceStateCommandEncoder(IMTLCommandBuffer)
GetHandle(INativeObject)
GetNonNullHandle(INativeObject, String)

Applies to