Share via


IMTL4ComputeCommandEncoder Interface

Definition

This interface represents the Objective-C protocol MTL4ComputeCommandEncoder.

[Foundation.Protocol(BackwardsCompatibleCodeGeneration=false, Name="MTL4ComputeCommandEncoder", WrapperType=typeof(Metal.MTL4ComputeCommandEncoderWrapper))]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetComputePipelineState", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLComputePipelineState) }, Selector="setComputePipelineState:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetThreadgroupMemoryLength", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setThreadgroupMemoryLength:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetImageblock", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setImageblockWidth:height:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DispatchThreads", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLSize), typeof(Metal.MTLSize) }, Selector="dispatchThreads:threadsPerThreadgroup:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DispatchThreadgroups", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLSize), typeof(Metal.MTLSize) }, Selector="dispatchThreadgroups:threadsPerThreadgroup:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DispatchThreadgroups", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UInt64), typeof(Metal.MTLSize) }, Selector="dispatchThreadgroupsWithIndirectBuffer:threadsPerThreadgroup:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DispatchThreads", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.UInt64) }, Selector="dispatchThreadsWithIndirectBuffer:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ExecuteCommandsInBuffer", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIndirectCommandBuffer), typeof(Foundation.NSRange) }, Selector="executeCommandsInBuffer:withRange:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ExecuteCommandsInBuffer", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIndirectCommandBuffer), typeof(System.UInt64) }, Selector="executeCommandsInBuffer:indirectBuffer:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromTexture", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(Metal.IMTLTexture) }, Selector="copyFromTexture:toTexture:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromTexture", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="copyFromTexture:sourceSlice:sourceLevel:toTexture:destinationSlice:destinationLevel:sliceCount:levelCount:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromTexture", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLOrigin), typeof(Metal.MTLSize), typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLOrigin) }, Selector="copyFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromTexture", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLOrigin), typeof(Metal.MTLSize), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="copyFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toBuffer:destinationOffset:destinationBytesPerRow:destinationBytesPerImage:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromTexture", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLOrigin), typeof(Metal.MTLSize), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLBlitOption) }, Selector="copyFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toBuffer:destinationOffset:destinationBytesPerRow:destinationBytesPerImage:options:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromBuffer", ParameterByRef=new System.Boolean[] { false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="copyFromBuffer:sourceOffset:toBuffer:destinationOffset:size:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromBuffer", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLSize), typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLOrigin) }, Selector="copyFromBuffer:sourceOffset:sourceBytesPerRow:sourceBytesPerImage:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromBuffer", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLSize), typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLOrigin), typeof(Metal.MTLBlitOption) }, Selector="copyFromBuffer:sourceOffset:sourceBytesPerRow:sourceBytesPerImage:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:options:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromTensor", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTensor), typeof(Metal.MTLTensorExtents), typeof(Metal.MTLTensorExtents), typeof(Metal.IMTLTensor), typeof(Metal.MTLTensorExtents), typeof(Metal.MTLTensorExtents) }, Selector="copyFromTensor:sourceOrigin:sourceDimensions:toTensor:destinationOrigin:destinationDimensions:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GenerateMipmaps", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture) }, Selector="generateMipmapsForTexture:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="FillBuffer", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(Foundation.NSRange), typeof(System.Byte) }, Selector="fillBuffer:range:value:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="OptimizeContentsForGpuAccess", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture) }, Selector="optimizeContentsForGPUAccess:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="OptimizeContentsForGpuAccess", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="optimizeContentsForGPUAccess:slice:level:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="OptimizeContentsForCpuAccess", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture) }, Selector="optimizeContentsForCPUAccess:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="OptimizeContentsForCpuAccess", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="optimizeContentsForCPUAccess:slice:level:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ResetCommandsInBuffer", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIndirectCommandBuffer), typeof(Foundation.NSRange) }, Selector="resetCommandsInBuffer:withRange:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyIndirectCommandBuffer", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIndirectCommandBuffer), typeof(Foundation.NSRange), typeof(Metal.IMTLIndirectCommandBuffer), typeof(System.UIntPtr) }, Selector="copyIndirectCommandBuffer:sourceRange:destination:destinationIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="OptimizeIndirectCommandBuffer", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIndirectCommandBuffer), typeof(Foundation.NSRange) }, Selector="optimizeIndirectCommandBuffer:withRange:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetArgumentTable", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTL4ArgumentTable) }, Selector="setArgumentTable:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="BuildAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLAccelerationStructure), typeof(Metal.MTL4AccelerationStructureDescriptor), typeof(Metal.MTL4BufferRange) }, Selector="buildAccelerationStructure:descriptor:scratchBuffer:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="RefitAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLAccelerationStructure), typeof(Metal.MTL4AccelerationStructureDescriptor), typeof(Metal.IMTLAccelerationStructure), typeof(Metal.MTL4BufferRange) }, Selector="refitAccelerationStructure:descriptor:destination:scratchBuffer:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="RefitAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLAccelerationStructure), typeof(Metal.MTL4AccelerationStructureDescriptor), typeof(Metal.IMTLAccelerationStructure), typeof(Metal.MTL4BufferRange), typeof(Metal.MTLAccelerationStructureRefitOptions) }, Selector="refitAccelerationStructure:descriptor:destination:scratchBuffer:options:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLAccelerationStructure), typeof(Metal.IMTLAccelerationStructure) }, Selector="copyAccelerationStructure:toAccelerationStructure:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WriteCompactedAccelerationStructureSize", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLAccelerationStructure), typeof(Metal.MTL4BufferRange) }, Selector="writeCompactedAccelerationStructureSize:toBuffer:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyAndCompactAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLAccelerationStructure), typeof(Metal.IMTLAccelerationStructure) }, Selector="copyAndCompactAccelerationStructure:toAccelerationStructure:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WriteTimestamp", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTL4TimestampGranularity), typeof(Metal.IMTL4CounterHeap), typeof(System.UIntPtr) }, Selector="writeTimestampWithGranularity:intoHeap:atIndex:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="stages", IsProperty=true, IsRequired=true, IsStatic=false, Name="Stages", PropertyType=typeof(Metal.MTLStages), Selector="stages")]
public interface IMTL4ComputeCommandEncoder : IDisposable, Metal.IMTL4CommandEncoder
[<Foundation.Protocol(BackwardsCompatibleCodeGeneration=false, Name="MTL4ComputeCommandEncoder", WrapperType=typeof(Metal.MTL4ComputeCommandEncoderWrapper))>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetComputePipelineState", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLComputePipelineState) }, Selector="setComputePipelineState:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetThreadgroupMemoryLength", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setThreadgroupMemoryLength:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetImageblock", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setImageblockWidth:height:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DispatchThreads", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLSize), typeof(Metal.MTLSize) }, Selector="dispatchThreads:threadsPerThreadgroup:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DispatchThreadgroups", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLSize), typeof(Metal.MTLSize) }, Selector="dispatchThreadgroups:threadsPerThreadgroup:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DispatchThreadgroups", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UInt64), typeof(Metal.MTLSize) }, Selector="dispatchThreadgroupsWithIndirectBuffer:threadsPerThreadgroup:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DispatchThreads", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.UInt64) }, Selector="dispatchThreadsWithIndirectBuffer:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ExecuteCommandsInBuffer", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIndirectCommandBuffer), typeof(Foundation.NSRange) }, Selector="executeCommandsInBuffer:withRange:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ExecuteCommandsInBuffer", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIndirectCommandBuffer), typeof(System.UInt64) }, Selector="executeCommandsInBuffer:indirectBuffer:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromTexture", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(Metal.IMTLTexture) }, Selector="copyFromTexture:toTexture:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromTexture", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="copyFromTexture:sourceSlice:sourceLevel:toTexture:destinationSlice:destinationLevel:sliceCount:levelCount:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromTexture", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLOrigin), typeof(Metal.MTLSize), typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLOrigin) }, Selector="copyFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromTexture", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLOrigin), typeof(Metal.MTLSize), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="copyFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toBuffer:destinationOffset:destinationBytesPerRow:destinationBytesPerImage:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromTexture", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLOrigin), typeof(Metal.MTLSize), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLBlitOption) }, Selector="copyFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toBuffer:destinationOffset:destinationBytesPerRow:destinationBytesPerImage:options:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromBuffer", ParameterByRef=new System.Boolean[] { false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="copyFromBuffer:sourceOffset:toBuffer:destinationOffset:size:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromBuffer", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLSize), typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLOrigin) }, Selector="copyFromBuffer:sourceOffset:sourceBytesPerRow:sourceBytesPerImage:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromBuffer", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLSize), typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLOrigin), typeof(Metal.MTLBlitOption) }, Selector="copyFromBuffer:sourceOffset:sourceBytesPerRow:sourceBytesPerImage:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:options:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyFromTensor", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTensor), typeof(Metal.MTLTensorExtents), typeof(Metal.MTLTensorExtents), typeof(Metal.IMTLTensor), typeof(Metal.MTLTensorExtents), typeof(Metal.MTLTensorExtents) }, Selector="copyFromTensor:sourceOrigin:sourceDimensions:toTensor:destinationOrigin:destinationDimensions:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GenerateMipmaps", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture) }, Selector="generateMipmapsForTexture:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="FillBuffer", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(Foundation.NSRange), typeof(System.Byte) }, Selector="fillBuffer:range:value:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="OptimizeContentsForGpuAccess", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture) }, Selector="optimizeContentsForGPUAccess:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="OptimizeContentsForGpuAccess", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="optimizeContentsForGPUAccess:slice:level:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="OptimizeContentsForCpuAccess", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture) }, Selector="optimizeContentsForCPUAccess:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="OptimizeContentsForCpuAccess", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLTexture), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="optimizeContentsForCPUAccess:slice:level:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ResetCommandsInBuffer", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIndirectCommandBuffer), typeof(Foundation.NSRange) }, Selector="resetCommandsInBuffer:withRange:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyIndirectCommandBuffer", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIndirectCommandBuffer), typeof(Foundation.NSRange), typeof(Metal.IMTLIndirectCommandBuffer), typeof(System.UIntPtr) }, Selector="copyIndirectCommandBuffer:sourceRange:destination:destinationIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="OptimizeIndirectCommandBuffer", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLIndirectCommandBuffer), typeof(Foundation.NSRange) }, Selector="optimizeIndirectCommandBuffer:withRange:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetArgumentTable", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTL4ArgumentTable) }, Selector="setArgumentTable:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="BuildAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLAccelerationStructure), typeof(Metal.MTL4AccelerationStructureDescriptor), typeof(Metal.MTL4BufferRange) }, Selector="buildAccelerationStructure:descriptor:scratchBuffer:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="RefitAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLAccelerationStructure), typeof(Metal.MTL4AccelerationStructureDescriptor), typeof(Metal.IMTLAccelerationStructure), typeof(Metal.MTL4BufferRange) }, Selector="refitAccelerationStructure:descriptor:destination:scratchBuffer:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="RefitAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLAccelerationStructure), typeof(Metal.MTL4AccelerationStructureDescriptor), typeof(Metal.IMTLAccelerationStructure), typeof(Metal.MTL4BufferRange), typeof(Metal.MTLAccelerationStructureRefitOptions) }, Selector="refitAccelerationStructure:descriptor:destination:scratchBuffer:options:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLAccelerationStructure), typeof(Metal.IMTLAccelerationStructure) }, Selector="copyAccelerationStructure:toAccelerationStructure:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WriteCompactedAccelerationStructureSize", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLAccelerationStructure), typeof(Metal.MTL4BufferRange) }, Selector="writeCompactedAccelerationStructureSize:toBuffer:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CopyAndCompactAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLAccelerationStructure), typeof(Metal.IMTLAccelerationStructure) }, Selector="copyAndCompactAccelerationStructure:toAccelerationStructure:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="WriteTimestamp", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTL4TimestampGranularity), typeof(Metal.IMTL4CounterHeap), typeof(System.UIntPtr) }, Selector="writeTimestampWithGranularity:intoHeap:atIndex:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="stages", IsProperty=true, IsRequired=true, IsStatic=false, Name="Stages", PropertyType=typeof(Metal.MTLStages), Selector="stages")>]
type IMTL4ComputeCommandEncoder = interface
    interface INativeObject
    interface IDisposable
    interface IMTL4CommandEncoder
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
CommandBuffer (Inherited from IMTL4CommandEncoder)
Handle

Handle (pointer) to the unmanaged object representation.

(Inherited from INativeObject)
Label (Inherited from IMTL4CommandEncoder)
Stages

Methods

Name Description
BarrierAfterEncoderStages(MTLStages, MTLStages, MTL4VisibilityOptions) (Inherited from IMTL4CommandEncoder)
BarrierAfterQueueStages(MTLStages, MTLStages, MTL4VisibilityOptions) (Inherited from IMTL4CommandEncoder)
BarrierAfterStages(MTLStages, MTLStages, MTL4VisibilityOptions) (Inherited from IMTL4CommandEncoder)
BuildAccelerationStructure(IMTLAccelerationStructure, MTL4AccelerationStructureDescriptor, MTL4BufferRange)
CopyAccelerationStructure(IMTLAccelerationStructure, IMTLAccelerationStructure)
CopyAndCompactAccelerationStructure(IMTLAccelerationStructure, IMTLAccelerationStructure)
CopyFromBuffer(IMTLBuffer, UIntPtr, IMTLBuffer, UIntPtr, UIntPtr)
CopyFromBuffer(IMTLBuffer, UIntPtr, UIntPtr, UIntPtr, MTLSize, IMTLTexture, UIntPtr, UIntPtr, MTLOrigin, MTLBlitOption)
CopyFromBuffer(IMTLBuffer, UIntPtr, UIntPtr, UIntPtr, MTLSize, IMTLTexture, UIntPtr, UIntPtr, MTLOrigin)
CopyFromTensor(IMTLTensor, MTLTensorExtents, MTLTensorExtents, IMTLTensor, MTLTensorExtents, MTLTensorExtents)
CopyFromTexture(IMTLTexture, IMTLTexture)
CopyFromTexture(IMTLTexture, UIntPtr, UIntPtr, IMTLTexture, UIntPtr, UIntPtr, UIntPtr, UIntPtr)
CopyFromTexture(IMTLTexture, UIntPtr, UIntPtr, MTLOrigin, MTLSize, IMTLBuffer, UIntPtr, UIntPtr, UIntPtr, MTLBlitOption)
CopyFromTexture(IMTLTexture, UIntPtr, UIntPtr, MTLOrigin, MTLSize, IMTLBuffer, UIntPtr, UIntPtr, UIntPtr)
CopyFromTexture(IMTLTexture, UIntPtr, UIntPtr, MTLOrigin, MTLSize, IMTLTexture, UIntPtr, UIntPtr, MTLOrigin)
CopyIndirectCommandBuffer(IMTLIndirectCommandBuffer, NSRange, IMTLIndirectCommandBuffer, UIntPtr)
DispatchThreadgroups(MTLSize, MTLSize)
DispatchThreadgroups(UInt64, MTLSize)
DispatchThreads(MTLSize, MTLSize)
DispatchThreads(UInt64)
EndEncoding() (Inherited from IMTL4CommandEncoder)
ExecuteCommandsInBuffer(IMTLIndirectCommandBuffer, NSRange)
ExecuteCommandsInBuffer(IMTLIndirectCommandBuffer, UInt64)
FillBuffer(IMTLBuffer, NSRange, Byte)
GenerateMipmaps(IMTLTexture)
InsertDebugSignpost(String) (Inherited from IMTL4CommandEncoder)
OptimizeContentsForCpuAccess(IMTLTexture, UIntPtr, UIntPtr)
OptimizeContentsForCpuAccess(IMTLTexture)
OptimizeContentsForGpuAccess(IMTLTexture, UIntPtr, UIntPtr)
OptimizeContentsForGpuAccess(IMTLTexture)
OptimizeIndirectCommandBuffer(IMTLIndirectCommandBuffer, NSRange)
PopDebugGroup() (Inherited from IMTL4CommandEncoder)
PushDebugGroup(String) (Inherited from IMTL4CommandEncoder)
RefitAccelerationStructure(IMTLAccelerationStructure, MTL4AccelerationStructureDescriptor, IMTLAccelerationStructure, MTL4BufferRange, MTLAccelerationStructureRefitOptions)
RefitAccelerationStructure(IMTLAccelerationStructure, MTL4AccelerationStructureDescriptor, IMTLAccelerationStructure, MTL4BufferRange)
ResetCommandsInBuffer(IMTLIndirectCommandBuffer, NSRange)
SetArgumentTable(IMTL4ArgumentTable)
SetComputePipelineState(IMTLComputePipelineState)
SetImageblock(UIntPtr, UIntPtr)
SetThreadgroupMemoryLength(UIntPtr, UIntPtr)
UpdateFence(IMTLFence, MTLStages) (Inherited from IMTL4CommandEncoder)
WaitForFence(IMTLFence, MTLStages) (Inherited from IMTL4CommandEncoder)
WriteCompactedAccelerationStructureSize(IMTLAccelerationStructure, MTL4BufferRange)
WriteTimestamp(MTL4TimestampGranularity, IMTL4CounterHeap, UIntPtr)

Extension Methods

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

Applies to