net9.0-ios17.2
namespace Metal
{
    [Protocol(Name = "MTLDevice", WrapperType = typeof(MTLDeviceWrapper))]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateCommandQueue", ReturnType = typeof(IMTLCommandQueue), Selector = "newCommandQueue")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateDefaultLibrary", ReturnType = typeof(IMTLLibrary), Selector = "newDefaultLibrary")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateFence", ReturnType = typeof(IMTLFence), Selector = "newFence")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateEvent", ReturnType = typeof(IMTLEvent), Selector = "newEvent")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateSharedEvent", ReturnType = typeof(IMTLSharedEvent), Selector = "newSharedEvent")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "GetDefaultSamplePositions", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IntPtr), typeof(UIntPtr) }, Selector = "getDefaultSamplePositions:count:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "ConvertSparseTileRegions", ParameterByRef = new[] { false, false, false, false }, ParameterType = new[] { typeof(IntPtr), typeof(IntPtr), typeof(MTLSize), typeof(UIntPtr) }, Selector = "convertSparseTileRegions:toPixelRegions:withTileSize:numRegions:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "ConvertSparsePixelRegions", ParameterByRef = new[] { false, false, false, false, false }, ParameterType = new[] { typeof(IntPtr), typeof(IntPtr), typeof(MTLSize), typeof(MTLSparseTextureRegionAlignmentMode), typeof(UIntPtr) }, Selector = "convertSparsePixelRegions:toTileRegions:withTileSize:alignmentMode:numRegions:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "GetSampleTimestamps", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(UIntPtr), typeof(UIntPtr) }, Selector = "sampleTimestamps:gpuTimestamp:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "GetHeapTextureSizeAndAlign", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLTextureDescriptor) }, ReturnType = typeof(MTLSizeAndAlign), Selector = "heapTextureSizeAndAlignWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "GetHeapBufferSizeAndAlignWithLength", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(UIntPtr), typeof(MTLResourceOptions) }, ReturnType = typeof(MTLSizeAndAlign), Selector = "heapBufferSizeAndAlignWithLength:options:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateHeap", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLHeapDescriptor) }, ReturnType = typeof(IMTLHeap), Selector = "newHeapWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateCommandQueue", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(UIntPtr) }, ReturnType = typeof(IMTLCommandQueue), Selector = "newCommandQueueWithMaxCommandBufferCount:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateBuffer", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(UIntPtr), typeof(MTLResourceOptions) }, ReturnType = typeof(IMTLBuffer), Selector = "newBufferWithLength:options:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateBuffer", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IntPtr), typeof(UIntPtr), typeof(MTLResourceOptions) }, ReturnType = typeof(IMTLBuffer), Selector = "newBufferWithBytes:length:options:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateDepthStencilState", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLDepthStencilDescriptor) }, ReturnType = typeof(IMTLDepthStencilState), Selector = "newDepthStencilStateWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateTexture", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLTextureDescriptor) }, ReturnType = typeof(IMTLTexture), Selector = "newTextureWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateTexture", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLTextureDescriptor), typeof(IOSurface), typeof(UIntPtr) }, ReturnType = typeof(IMTLTexture), Selector = "newTextureWithDescriptor:iosurface:plane:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateSharedTexture", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLTextureDescriptor) }, ReturnType = typeof(IMTLTexture), Selector = "newSharedTextureWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateSharedTexture", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLSharedTextureHandle) }, ReturnType = typeof(IMTLTexture), Selector = "newSharedTextureWithHandle:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateSamplerState", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLSamplerDescriptor) }, ReturnType = typeof(IMTLSamplerState), Selector = "newSamplerStateWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateLibrary", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(string), typeof(NSError) }, ReturnType = typeof(IMTLLibrary), Selector = "newLibraryWithFile:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateLibrary", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(DispatchData), typeof(NSError) }, ReturnType = typeof(IMTLLibrary), Selector = "newLibraryWithData:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateLibrary", ParameterByRef = new[] { false, false, true }, ParameterType = new[] { typeof(string), typeof(MTLCompileOptions), typeof(NSError) }, ReturnType = typeof(IMTLLibrary), Selector = "newLibraryWithSource:options:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateLibrary", ParameterBlockProxy = new[] { null, null, typeof(NIDActionArity2V130) }, ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(string), typeof(MTLCompileOptions), typeof(Action<IMTLLibrary, NSError>) }, Selector = "newLibraryWithSource:options:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateDefaultLibrary", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(NSBundle), typeof(NSError) }, ReturnType = typeof(IMTLLibrary), Selector = "newDefaultLibraryWithBundle:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateRenderPipelineState", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(MTLRenderPipelineDescriptor), typeof(NSError) }, ReturnType = typeof(IMTLRenderPipelineState), Selector = "newRenderPipelineStateWithDescriptor:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateRenderPipelineState", ParameterBlockProxy = new[] { null, typeof(NIDActionArity2V131) }, ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(MTLRenderPipelineDescriptor), typeof(Action<IMTLRenderPipelineState, NSError>) }, Selector = "newRenderPipelineStateWithDescriptor:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateRenderPipelineState", ParameterByRef = new[] { false, false, true, true }, ParameterType = new[] { typeof(MTLRenderPipelineDescriptor), typeof(MTLPipelineOption), typeof(MTLRenderPipelineReflection), typeof(NSError) }, ReturnType = typeof(IMTLRenderPipelineState), Selector = "newRenderPipelineStateWithDescriptor:options:reflection:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateRenderPipelineState", ParameterBlockProxy = new[] { null, null, typeof(NIDActionArity3V16) }, ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLRenderPipelineDescriptor), typeof(MTLPipelineOption), typeof(Action<IMTLRenderPipelineState, MTLRenderPipelineReflection, NSError>) }, Selector = "newRenderPipelineStateWithDescriptor:options:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateComputePipelineState", ParameterByRef = new[] { false, false, true, true }, ParameterType = new[] { typeof(IMTLFunction), typeof(MTLPipelineOption), typeof(MTLComputePipelineReflection), typeof(NSError) }, ReturnType = typeof(IMTLComputePipelineState), Selector = "newComputePipelineStateWithFunction:options:reflection:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateComputePipelineState", ParameterBlockProxy = new[] { null, typeof(NIDActionArity2V132) }, ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLFunction), typeof(Action<IMTLComputePipelineState, NSError>) }, Selector = "newComputePipelineStateWithFunction:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateComputePipelineState", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(IMTLFunction), typeof(NSError) }, ReturnType = typeof(IMTLComputePipelineState), Selector = "newComputePipelineStateWithFunction:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateComputePipelineState", ParameterBlockProxy = new[] { null, null, typeof(NIDActionArity3V17) }, ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IMTLFunction), typeof(MTLPipelineOption), typeof(Action<IMTLComputePipelineState, MTLComputePipelineReflection, NSError>) }, Selector = "newComputePipelineStateWithFunction:options:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateComputePipelineState", ParameterByRef = new[] { false, false, true, true }, ParameterType = new[] { typeof(MTLComputePipelineDescriptor), typeof(MTLPipelineOption), typeof(MTLComputePipelineReflection), typeof(NSError) }, ReturnType = typeof(IMTLComputePipelineState), Selector = "newComputePipelineStateWithDescriptor:options:reflection:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateComputePipelineState", ParameterBlockProxy = new[] { null, null, typeof(NIDMTLNewComputePipelineStateWithReflectionCompletionHandler) }, ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLComputePipelineDescriptor), typeof(MTLPipelineOption), typeof(MTLNewComputePipelineStateWithReflectionCompletionHandler) }, Selector = "newComputePipelineStateWithDescriptor:options:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SupportsFeatureSet", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLFeatureSet) }, ReturnType = typeof(bool), Selector = "supportsFeatureSet:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SupportsTextureSampleCount", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(UIntPtr) }, ReturnType = typeof(bool), Selector = "supportsTextureSampleCount:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateLibrary", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(NSUrl), typeof(NSError) }, ReturnType = typeof(IMTLLibrary), Selector = "newLibraryWithURL:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "GetMinimumLinearTextureAlignment", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLPixelFormat) }, ReturnType = typeof(UIntPtr), Selector = "minimumLinearTextureAlignmentForPixelFormat:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "GetMinimumTextureBufferAlignment", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLPixelFormat) }, ReturnType = typeof(UIntPtr), Selector = "minimumTextureBufferAlignmentForPixelFormat:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateArgumentEncoder", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLArgumentDescriptor[]) }, ReturnType = typeof(IMTLArgumentEncoder), Selector = "newArgumentEncoderWithArguments:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateIndirectCommandBuffer", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLIndirectCommandBufferDescriptor), typeof(UIntPtr), typeof(MTLResourceOptions) }, ReturnType = typeof(IMTLIndirectCommandBuffer), Selector = "newIndirectCommandBufferWithDescriptor:maxCommandCount:options:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateSharedEvent", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLSharedEventHandle) }, ReturnType = typeof(IMTLSharedEvent), Selector = "newSharedEventWithHandle:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateRenderPipelineState", ParameterByRef = new[] { false, false, true, true }, ParameterType = new[] { typeof(MTLTileRenderPipelineDescriptor), typeof(MTLPipelineOption), typeof(MTLRenderPipelineReflection), typeof(NSError) }, ReturnType = typeof(IMTLRenderPipelineState), Selector = "newRenderPipelineStateWithTileDescriptor:options:reflection:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateRenderPipelineState", ParameterBlockProxy = new[] { null, null, typeof(NIDMTLNewRenderPipelineStateWithReflectionCompletionHandler) }, ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLTileRenderPipelineDescriptor), typeof(MTLPipelineOption), typeof(MTLNewRenderPipelineStateWithReflectionCompletionHandler) }, Selector = "newRenderPipelineStateWithTileDescriptor:options:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SupportsVertexAmplification", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(UIntPtr) }, ReturnType = typeof(bool), Selector = "supportsVertexAmplificationCount:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SupportsRasterizationRateMap", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(UIntPtr) }, ReturnType = typeof(bool), Selector = "supportsRasterizationRateMapWithLayerCount:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "GetSparseTileSize", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLTextureType), typeof(MTLPixelFormat), typeof(UIntPtr) }, ReturnType = typeof(MTLSize), Selector = "sparseTileSizeWithTextureType:pixelFormat:sampleCount:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateRasterizationRateMap", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLRasterizationRateMapDescriptor) }, ReturnType = typeof(IMTLRasterizationRateMap), Selector = "newRasterizationRateMapWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SupportsFamily", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLGpuFamily) }, ReturnType = typeof(bool), Selector = "supportsFamily:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateCounterSampleBuffer", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(MTLCounterSampleBufferDescriptor), typeof(NSError) }, ReturnType = typeof(IMTLCounterSampleBuffer), Selector = "newCounterSampleBufferWithDescriptor:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SupportsCounterSampling", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLCounterSamplingPoint) }, ReturnType = typeof(bool), Selector = "supportsCounterSampling:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateDynamicLibrary", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(IMTLLibrary), typeof(NSError) }, ReturnType = typeof(IMTLDynamicLibrary), Selector = "newDynamicLibrary:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateDynamicLibrary", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(NSUrl), typeof(NSError) }, ReturnType = typeof(IMTLDynamicLibrary), Selector = "newDynamicLibraryWithURL:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateBinaryArchive", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(MTLBinaryArchiveDescriptor), typeof(NSError) }, ReturnType = typeof(IMTLBinaryArchive), Selector = "newBinaryArchiveWithDescriptor:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateAccelerationStructureSizes", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLAccelerationStructureDescriptor) }, ReturnType = typeof(MTLAccelerationStructureSizes), Selector = "accelerationStructureSizesWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateAccelerationStructure", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(UIntPtr) }, ReturnType = typeof(IMTLAccelerationStructure), Selector = "newAccelerationStructureWithSize:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateAccelerationStructure", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLAccelerationStructureDescriptor) }, ReturnType = typeof(IMTLAccelerationStructure), Selector = "newAccelerationStructureWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateLibrary", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(MTLStitchedLibraryDescriptor), typeof(NSError) }, ReturnType = typeof(IMTLLibrary), Selector = "newLibraryWithStitchedDescriptor:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateLibrary", ParameterBlockProxy = new[] { null, typeof(NIDActionArity2V130) }, ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(MTLStitchedLibraryDescriptor), typeof(Action<IMTLLibrary, NSError>) }, Selector = "newLibraryWithStitchedDescriptor:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "GetHeapAccelerationStructureSizeAndAlign", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLAccelerationStructureDescriptor) }, ReturnType = typeof(MTLSizeAndAlign), Selector = "heapAccelerationStructureSizeAndAlignWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "GetHeapAccelerationStructureSizeAndAlign", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(UIntPtr) }, ReturnType = typeof(MTLSizeAndAlign), Selector = "heapAccelerationStructureSizeAndAlignWithSize:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateArgumentEncoder", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(IMTLBufferBinding) }, ReturnType = typeof(IMTLArgumentEncoder), Selector = "newArgumentEncoderWithBufferBinding:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateRenderPipelineState", ParameterByRef = new[] { false, false, true, true }, ParameterType = new[] { typeof(MTLMeshRenderPipelineDescriptor), typeof(MTLPipelineOption), typeof(MTLRenderPipelineReflection), typeof(NSError) }, ReturnType = typeof(IMTLRenderPipelineState), Selector = "newRenderPipelineStateWithMeshDescriptor:options:reflection:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateRenderPipelineState", ParameterBlockProxy = new[] { null, null, typeof(NIDMTLNewRenderPipelineStateWithReflectionCompletionHandler) }, ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLMeshRenderPipelineDescriptor), typeof(MTLPipelineOption), typeof(MTLNewRenderPipelineStateWithReflectionCompletionHandler) }, Selector = "newRenderPipelineStateWithMeshDescriptor:options:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "GetSparseTileSizeInBytes", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLSparsePageSize) }, ReturnType = typeof(UIntPtr), Selector = "sparseTileSizeInBytesForSparsePageSize:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "GetSparseTileSize", ParameterByRef = new[] { false, false, false, false }, ParameterType = new[] { typeof(MTLTextureType), typeof(MTLPixelFormat), typeof(UIntPtr), typeof(MTLSparsePageSize) }, ReturnType = typeof(MTLSize), Selector = "sparseTileSizeWithTextureType:pixelFormat:sampleCount:sparsePageSize:")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "name", IsProperty = true, IsRequired = true, IsStatic = false, Name = "Name", PropertyType = typeof(string), Selector = "name")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "maxThreadsPerThreadgroup", IsProperty = true, IsRequired = true, IsStatic = false, Name = "MaxThreadsPerThreadgroup", PropertyType = typeof(MTLSize), Selector = "maxThreadsPerThreadgroup")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "recommendedMaxWorkingSetSize", IsProperty = true, IsRequired = true, IsStatic = false, Name = "RecommendedMaxWorkingSetSize", PropertyType = typeof(ulong), Selector = "recommendedMaxWorkingSetSize")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "readWriteTextureSupport", IsProperty = true, IsRequired = true, IsStatic = false, Name = "ReadWriteTextureSupport", PropertyType = typeof(MTLReadWriteTextureTier), Selector = "readWriteTextureSupport")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "argumentBuffersSupport", IsProperty = true, IsRequired = true, IsStatic = false, Name = "ArgumentBuffersSupport", PropertyType = typeof(MTLArgumentBuffersTier), Selector = "argumentBuffersSupport")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "areRasterOrderGroupsSupported", IsProperty = true, IsRequired = true, IsStatic = false, Name = "RasterOrderGroupsSupported", PropertyType = typeof(bool), Selector = "rasterOrderGroupsSupported")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "maxThreadgroupMemoryLength", IsProperty = true, IsRequired = true, IsStatic = false, Name = "MaxThreadgroupMemoryLength", PropertyType = typeof(UIntPtr), Selector = "maxThreadgroupMemoryLength")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "maxArgumentBufferSamplerCount", IsProperty = true, IsRequired = true, IsStatic = false, Name = "MaxArgumentBufferSamplerCount", PropertyType = typeof(UIntPtr), Selector = "maxArgumentBufferSamplerCount")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "areProgrammableSamplePositionsSupported", IsProperty = true, IsRequired = true, IsStatic = false, Name = "ProgrammableSamplePositionsSupported", PropertyType = typeof(bool), Selector = "programmableSamplePositionsSupported")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "maxBufferLength", IsProperty = true, IsRequired = true, IsStatic = false, Name = "MaxBufferLength", PropertyType = typeof(UIntPtr), Selector = "maxBufferLength")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "registryID", IsProperty = true, IsRequired = true, IsStatic = false, Name = "RegistryId", PropertyType = typeof(ulong), Selector = "registryID")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "currentAllocatedSize", IsProperty = true, IsRequired = true, IsStatic = false, Name = "CurrentAllocatedSize", PropertyType = typeof(UIntPtr), Selector = "currentAllocatedSize")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "sparseTileSizeInBytes", IsProperty = true, IsRequired = true, IsStatic = false, Name = "SparseTileSizeInBytes", PropertyType = typeof(UIntPtr), Selector = "sparseTileSizeInBytes")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "hasUnifiedMemory", IsProperty = true, IsRequired = true, IsStatic = false, Name = "HasUnifiedMemory", PropertyType = typeof(bool), Selector = "hasUnifiedMemory")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "areBarycentricCoordsSupported", IsProperty = true, IsRequired = true, IsStatic = false, Name = "BarycentricCoordsSupported", PropertyType = typeof(bool), Selector = "barycentricCoordsSupported")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "supportsShaderBarycentricCoordinates", IsProperty = true, IsRequired = true, IsStatic = false, Name = "SupportsShaderBarycentricCoordinates", PropertyType = typeof(bool), Selector = "supportsShaderBarycentricCoordinates")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "counterSets", IsProperty = true, IsRequired = true, IsStatic = false, Name = "CounterSets", PropertyType = typeof(IMTLCounterSet[]), Selector = "counterSets")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "supports32BitFloatFiltering", IsProperty = true, IsRequired = true, IsStatic = false, Name = "Supports32BitFloatFiltering", PropertyType = typeof(bool), Selector = "supports32BitFloatFiltering")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "supports32BitMSAA", IsProperty = true, IsRequired = true, IsStatic = false, Name = "Supports32BitMsaa", PropertyType = typeof(bool), Selector = "supports32BitMSAA")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "supportsBCTextureCompression", IsProperty = true, IsRequired = true, IsStatic = false, Name = "SupportsBCTextureCompression", PropertyType = typeof(bool), Selector = "supportsBCTextureCompression")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "supportsPullModelInterpolation", IsProperty = true, IsRequired = true, IsStatic = false, Name = "SupportsPullModelInterpolation", PropertyType = typeof(bool), Selector = "supportsPullModelInterpolation")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "supportsDynamicLibraries", IsProperty = true, IsRequired = true, IsStatic = false, Name = "SupportsDynamicLibraries", PropertyType = typeof(bool), Selector = "supportsDynamicLibraries")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "supportsRaytracing", IsProperty = true, IsRequired = true, IsStatic = false, Name = "SupportsRaytracing", PropertyType = typeof(bool), Selector = "supportsRaytracing")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "supportsFunctionPointers", IsProperty = true, IsRequired = true, IsStatic = false, Name = "SupportsFunctionPointers", PropertyType = typeof(bool), Selector = "supportsFunctionPointers")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "supportsQueryTextureLOD", IsProperty = true, IsRequired = true, IsStatic = false, Name = "SupportsQueryTextureLod", PropertyType = typeof(bool), Selector = "supportsQueryTextureLOD")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "supportsRenderDynamicLibraries", IsProperty = true, IsRequired = true, IsStatic = false, Name = "SupportsRenderDynamicLibraries", PropertyType = typeof(bool), Selector = "supportsRenderDynamicLibraries")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "supportsRaytracingFromRender", IsProperty = true, IsRequired = true, IsStatic = false, Name = "SupportsRaytracingFromRender", PropertyType = typeof(bool), Selector = "supportsRaytracingFromRender")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "supportsPrimitiveMotionBlur", IsProperty = true, IsRequired = true, IsStatic = false, Name = "SupportsPrimitiveMotionBlur", PropertyType = typeof(bool), Selector = "supportsPrimitiveMotionBlur")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "supportsFunctionPointersFromRender", IsProperty = true, IsRequired = true, IsStatic = false, Name = "SupportsFunctionPointersFromRender", PropertyType = typeof(bool), Selector = "supportsFunctionPointersFromRender")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "architecture", IsProperty = true, IsRequired = false, IsStatic = false, Name = "Architecture", PropertyType = typeof(MTLArchitecture), Selector = "architecture")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateBufferNoCopy", ParameterBlockProxy = new[] { null, null, null, typeof(NIDMTLDeallocator) }, ParameterByRef = new[] { false, false, false, false }, ParameterType = new[] { typeof(IntPtr), typeof(UIntPtr), typeof(MTLResourceOptions), typeof(MTLDeallocator) }, ReturnType = typeof(IMTLBuffer), Selector = "newBufferWithBytesNoCopy:length:options:deallocator:")]
    [SupportedOSPlatform("maccatalyst")]
    [SupportedOSPlatform("ios")]
    [SupportedOSPlatform("macos")]
    [SupportedOSPlatform("tvos")]
    public interface IMTLDevice : INativeObject, IDisposable
    {
        [BindingImpl(BindingImplOptions.GeneratedCode | BindingImplOptions.Optimizable)]
        [Export("newComputePipelineStateWithFunction:options:completionHandler:")]
        [Preserve(Conditional = true)]
        void CreateComputePipelineState(IMTLFunction! computeFunction, MTLPipelineOption options, [BlockProxy(typeof(NIDActionArity3V17))] Action<IMTLComputePipelineState!, MTLComputePipelineReflection!, NSError!>! completionHandler);
    }
}
.NET 6.07.08.09.0
Information specific to net9.0
Platforms This API is only available when you target a specific platform:
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
Mac Catalyst 13.113.213.313.413.514.214.314.414.515.015.215.416.116.216.417.017.2
macOS 10.1410.1510.1611.011.111.211.312.012.112.313.013.113.314.014.2
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
Information specific to net9.0-ios17.2
Assembly

Microsoft.iOS , Version=17.2.0.0, PublicKeyToken=84e04ff9cfb79065

Referencing

The API is automatically referenced.

Platform Restrictions

This API is only supported on the following platforms:

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

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