IMTL4ComputeCommandEncoder Interface
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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
Extension Methods
| Name | Description |
|---|---|
| GetHandle(INativeObject) | |
| GetNonNullHandle(INativeObject, String) | |