net9.0-ios17.2
namespace Metal
{
    [Protocol(Name = "MTLComputeCommandEncoder", WrapperType = typeof(MTLComputeCommandEncoderWrapper))]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetComputePipelineState", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(IMTLComputePipelineState) }, Selector = "setComputePipelineState:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetBuffer", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IMTLBuffer), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setBuffer:offset:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetTexture", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLTexture), typeof(UIntPtr) }, Selector = "setTexture:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetSamplerState", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLSamplerState), typeof(UIntPtr) }, Selector = "setSamplerState:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetSamplerState", ParameterByRef = new[] { false, false, false, false }, ParameterType = new[] { typeof(IMTLSamplerState), typeof(float), typeof(float), typeof(UIntPtr) }, Selector = "setSamplerState:lodMinClamp:lodMaxClamp:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetThreadgroupMemoryLength", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setThreadgroupMemoryLength:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "DispatchThreadgroups", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(MTLSize), typeof(MTLSize) }, Selector = "dispatchThreadgroups:threadsPerThreadgroup:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "DispatchThreadgroups", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IMTLBuffer), typeof(UIntPtr), typeof(MTLSize) }, Selector = "dispatchThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerThreadgroup:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetBuffers", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IntPtr), typeof(IntPtr), typeof(NSRange) }, Selector = "setBuffers:offsets:withRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetSamplerStates", ParameterByRef = new[] { false, false, false, false }, ParameterType = new[] { typeof(IMTLSamplerState[]), typeof(IntPtr), typeof(IntPtr), typeof(NSRange) }, Selector = "setSamplerStates:lodMinClamps:lodMaxClamps:withRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetSamplerStates", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLSamplerState[]), typeof(NSRange) }, Selector = "setSamplerStates:withRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetTextures", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLTexture[]), typeof(NSRange) }, Selector = "setTextures:withRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetBufferOffset", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setBufferOffset:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetBytes", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IntPtr), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setBytes:length:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetStage", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLRegion) }, Selector = "setStageInRegion:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetStageInRegion", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLBuffer), typeof(UIntPtr) }, Selector = "setStageInRegionWithIndirectBuffer:indirectBufferOffset:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "Update", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(IMTLFence) }, Selector = "updateFence:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "Wait", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(IMTLFence) }, Selector = "waitForFence:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "DispatchThreads", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(MTLSize), typeof(MTLSize) }, Selector = "dispatchThreads:threadsPerThreadgroup:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "UseResource", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLResource), typeof(MTLResourceUsage) }, Selector = "useResource:usage:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "UseResources", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IMTLResource[]), typeof(UIntPtr), typeof(MTLResourceUsage) }, Selector = "useResources:count:usage:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "UseHeap", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(IMTLHeap) }, Selector = "useHeap:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "UseHeaps", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLHeap[]), typeof(UIntPtr) }, Selector = "useHeaps:count:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetImageblock", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setImageblockWidth:height:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "MemoryBarrier", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLBarrierScope) }, Selector = "memoryBarrierWithScope:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "MemoryBarrier", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLResource[]), typeof(UIntPtr) }, Selector = "memoryBarrierWithResources:count:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "ExecuteCommands", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLIndirectCommandBuffer), typeof(NSRange) }, Selector = "executeCommandsInBuffer:withRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "ExecuteCommands", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IMTLIndirectCommandBuffer), typeof(IMTLBuffer), typeof(UIntPtr) }, Selector = "executeCommandsInBuffer:indirectBuffer:indirectBufferOffset:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SampleCounters", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IMTLCounterSampleBuffer), typeof(UIntPtr), typeof(bool) }, Selector = "sampleCountersInBuffer:atSampleIndex:withBarrier:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetVisibleFunctionTable", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLVisibleFunctionTable), typeof(UIntPtr) }, Selector = "setVisibleFunctionTable:atBufferIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetVisibleFunctionTables", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLVisibleFunctionTable[]), typeof(NSRange) }, Selector = "setVisibleFunctionTables:withBufferRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetIntersectionFunctionTable", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLIntersectionFunctionTable), typeof(UIntPtr) }, Selector = "setIntersectionFunctionTable:atBufferIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetIntersectionFunctionTables", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLIntersectionFunctionTable[]), typeof(NSRange) }, Selector = "setIntersectionFunctionTables:withBufferRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetAccelerationStructure", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLAccelerationStructure), typeof(UIntPtr) }, Selector = "setAccelerationStructure:atBufferIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "SetBuffer", ParameterByRef = new[] { false, false, false, false }, ParameterType = new[] { typeof(IMTLBuffer), typeof(UIntPtr), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setBuffer:offset:attributeStride:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "SetBuffers", ParameterByRef = new[] { false, false, false, false }, ParameterType = new[] { typeof(IntPtr), typeof(IntPtr), typeof(IntPtr), typeof(NSRange) }, Selector = "setBuffers:offsets:attributeStrides:withRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "SetBufferOffset", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(UIntPtr), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setBufferOffset:attributeStride:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "SetBytes", ParameterByRef = new[] { false, false, false, false }, ParameterType = new[] { typeof(IntPtr), typeof(UIntPtr), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setBytes:length:attributeStride:atIndex:")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "dispatchType", IsProperty = true, IsRequired = true, IsStatic = false, Name = "DispatchType", PropertyType = typeof(MTLDispatchType), Selector = "dispatchType")]
    [SupportedOSPlatform("maccatalyst")]
    [SupportedOSPlatform("ios")]
    [SupportedOSPlatform("macos")]
    [SupportedOSPlatform("tvos")]
    public interface IMTLComputeCommandEncoder : IMTLCommandEncoder, INativeObject, IDisposable
    {
        [BindingImpl(BindingImplOptions.GeneratedCode | BindingImplOptions.Optimizable)]
        [Export("memoryBarrierWithScope:")]
        [Preserve(Conditional = true)]
        [SupportedOSPlatform("ios12.0")]
        [SupportedOSPlatform("tvos12.0")]
        [SupportedOSPlatform("maccatalyst")]
        [SupportedOSPlatform("macos")]
        void MemoryBarrier(MTLBarrierScope scope);
    }
}
Assembly Microsoft.iOS , Version=17.0.0.0, PublicKeyToken=84e04ff9cfb79065
.NET 6.07.08.09.0
Platform Specific Frameworks
net9.0-ios 10.010.110.210.311.011.111.211.311.412.012.112.212.312.413.013.113.213.313.413.513.614.014.114.214.314.414.515.015.215.416.016.116.216.417.017.2
net9.0-maccatalyst 13.113.213.313.413.514.214.314.414.515.015.215.416.116.216.417.017.2
net9.0-macos 10.1410.1510.1611.011.111.211.312.012.112.313.013.113.314.014.2
net9.0-tvos 10.010.110.211.011.111.211.311.412.012.112.212.312.413.013.213.313.414.014.214.314.414.515.015.215.416.016.116.417.017.2
Platform Restrictions

For the selected framework this API is only supported on the following OS platforms:

  • iOS >= 12
  • Mac Catalyst
  • macOS
  • tvOS >= 12
  • Built-in API
  • Package-provided API

05/02/2024
An error has occurred. This application may no longer respond until reloaded. Reload 🗙