Table of Contents

Class MetalNative

Namespace
DotCompute.Backends.Metal.Native
Assembly
DotCompute.Backends.Metal.dll

Native interop for Metal API.

public static class MetalNative
Inheritance
MetalNative
Inherited Members

Methods

CommitCommandBuffer(nint)

public static extern void CommitCommandBuffer(nint commandBuffer)

Parameters

commandBuffer nint

CompileLibrary(nint, string, nint, ref nint)

public static nint CompileLibrary(nint device, string source, nint options, ref nint error)

Parameters

device nint
source string
options nint
error nint

Returns

nint

CopyBuffer(nint, long, nint, long, long)

public static extern void CopyBuffer(nint source, long sourceOffset, nint destination, long destOffset, long size)

Parameters

source nint
sourceOffset long
destination nint
destOffset long
size long

CreateBuffer(nint, nuint, MetalStorageMode)

public static extern nint CreateBuffer(nint device, nuint length, MetalStorageMode storageMode)

Parameters

device nint
length nuint
storageMode MetalStorageMode

Returns

nint

CreateBufferWithBytes(nint, nint, nuint, MetalStorageMode)

public static extern nint CreateBufferWithBytes(nint device, nint bytes, nuint length, MetalStorageMode storageMode)

Parameters

device nint
bytes nint
length nuint
storageMode MetalStorageMode

Returns

nint

CreateCommandBuffer(nint)

public static extern nint CreateCommandBuffer(nint commandQueue)

Parameters

commandQueue nint

Returns

nint

CreateCommandQueue(nint)

public static extern nint CreateCommandQueue(nint device)

Parameters

device nint

Returns

nint

CreateCompileOptions()

public static extern nint CreateCompileOptions()

Returns

nint

CreateComputeCommandEncoder(nint)

public static extern nint CreateComputeCommandEncoder(nint commandBuffer)

Parameters

commandBuffer nint

Returns

nint

CreateComputePipelineState(nint, nint)

public static extern nint CreateComputePipelineState(nint device, nint function)

Parameters

device nint
function nint

Returns

nint

CreateComputePipelineState(nint, nint, ref nint)

public static nint CreateComputePipelineState(nint device, nint function, ref nint error)

Parameters

device nint
function nint
error nint

Returns

nint

CreateDeviceAtIndex(int)

public static extern nint CreateDeviceAtIndex(int index)

Parameters

index int

Returns

nint

CreateLibraryWithSource(nint, string)

public static nint CreateLibraryWithSource(nint device, string source)

Parameters

device nint
source string

Returns

nint

CreateSystemDefaultDevice()

public static extern nint CreateSystemDefaultDevice()

Returns

nint

DidModifyRange(nint, long, long)

public static extern void DidModifyRange(nint buffer, long offset, long length)

Parameters

buffer nint
offset long
length long

DispatchThreadgroups(nint, MetalSize, MetalSize)

public static extern void DispatchThreadgroups(nint encoder, MetalSize gridSize, MetalSize threadgroupSize)

Parameters

encoder nint
gridSize MetalSize
threadgroupSize MetalSize

EndEncoding(nint)

public static extern void EndEncoding(nint encoder)

Parameters

encoder nint

GetBufferContents(nint)

public static extern nint GetBufferContents(nint buffer)

Parameters

buffer nint

Returns

nint

GetBufferLength(nint)

public static extern nuint GetBufferLength(nint buffer)

Parameters

buffer nint

Returns

nuint

GetDeviceCount()

public static extern int GetDeviceCount()

Returns

int

GetDeviceInfo(nint)

public static extern MetalDeviceInfo GetDeviceInfo(nint device)

Parameters

device nint

Returns

MetalDeviceInfo

GetErrorLocalizedDescription(nint)

public static extern nint GetErrorLocalizedDescription(nint error)

Parameters

error nint

Returns

nint

GetFunction(nint, string)

public static nint GetFunction(nint library, string functionName)

Parameters

library nint
functionName string

Returns

nint

GetLibraryData(nint, nint, int)

public static bool GetLibraryData(nint library, nint buffer, int bufferSize)

Parameters

library nint
buffer nint
bufferSize int

Returns

bool

GetLibraryDataSize(nint)

public static extern int GetLibraryDataSize(nint library)

Parameters

library nint

Returns

int

GetMaxTotalThreadsPerThreadgroup(nint)

public static extern int GetMaxTotalThreadsPerThreadgroup(nint pipelineState)

Parameters

pipelineState nint

Returns

int

GetThreadExecutionWidth(nint, out int, out int, out int)

public static void GetThreadExecutionWidth(nint pipelineState, out int x, out int y, out int z)

Parameters

pipelineState nint
x int
y int
z int

GetThreadExecutionWidthTuple(nint)

public static (int x, int y, int z) GetThreadExecutionWidthTuple(nint pipelineState)

Parameters

pipelineState nint

Returns

(int x, int y, int z)

IsMetalSupported()

public static bool IsMetalSupported()

Returns

bool

ReleaseBuffer(nint)

public static extern void ReleaseBuffer(nint buffer)

Parameters

buffer nint

ReleaseCommandBuffer(nint)

public static extern void ReleaseCommandBuffer(nint commandBuffer)

Parameters

commandBuffer nint

ReleaseCommandQueue(nint)

public static extern void ReleaseCommandQueue(nint commandQueue)

Parameters

commandQueue nint

ReleaseCompileOptions(nint)

public static extern void ReleaseCompileOptions(nint options)

Parameters

options nint

ReleaseComputePipelineState(nint)

public static extern void ReleaseComputePipelineState(nint pipelineState)

Parameters

pipelineState nint

ReleaseDevice(nint)

public static extern void ReleaseDevice(nint device)

Parameters

device nint

ReleaseEncoder(nint)

public static extern void ReleaseEncoder(nint encoder)

Parameters

encoder nint

ReleaseError(nint)

public static extern void ReleaseError(nint error)

Parameters

error nint

ReleaseFunction(nint)

public static extern void ReleaseFunction(nint function)

Parameters

function nint

ReleaseLibrary(nint)

public static extern void ReleaseLibrary(nint library)

Parameters

library nint

ReleasePipelineState(nint)

public static extern void ReleasePipelineState(nint pipelineState)

Parameters

pipelineState nint

SetBuffer(nint, nint, nuint, int)

public static extern void SetBuffer(nint encoder, nint buffer, nuint offset, int index)

Parameters

encoder nint
buffer nint
offset nuint
index int

SetBytes(nint, nint, nuint, int)

public static extern void SetBytes(nint encoder, nint bytes, nuint length, int index)

Parameters

encoder nint
bytes nint
length nuint
index int

SetCommandBufferCompletionHandler(nint, CommandBufferCompletionHandler)

public static void SetCommandBufferCompletionHandler(nint commandBuffer, CommandBufferCompletionHandler handler)

Parameters

commandBuffer nint
handler CommandBufferCompletionHandler

SetCompileOptionsFastMath(nint, bool)

public static void SetCompileOptionsFastMath(nint options, bool enable)

Parameters

options nint
enable bool

SetCompileOptionsLanguageVersion(nint, MetalLanguageVersion)

public static extern void SetCompileOptionsLanguageVersion(nint options, MetalLanguageVersion version)

Parameters

options nint
version MetalLanguageVersion

SetComputePipelineState(nint, nint)

public static extern void SetComputePipelineState(nint encoder, nint pipelineState)

Parameters

encoder nint
pipelineState nint

WaitUntilCompleted(nint)

public static extern void WaitUntilCompleted(nint commandBuffer)

Parameters

commandBuffer nint