Table of Contents

Enum GpuSyncKind

Namespace
Maplibre.NativeFfi
Assembly
Maplibre.NativeFfi.dll

How one side waits for the other's GPU work on a shared texture.

public enum GpuSyncKind : uint

Fields

CpuComplete = 0

The work has already finished, so there is nothing to wait for.

D3d12Fence = 6

handle is a shared Windows handle to an ID3D12Fence. Wait until it reaches value.

MetalSharedEvent = 5

handle is an MTLSharedEvent. Wait until it reaches value.

OpenGlFence = 1

handle is a GLsync in the session's share group.

QueueOrder = 2

The work was submitted to the queue that both sides share, so work submitted to that queue later runs after it.

SyncFd = 4

handle is a sync file descriptor.

VulkanTimelineSemaphore = 3

handle is a VkSemaphore. Wait until it reaches value.

Remarks

A sync file descriptor or an OpenGL fence signals once, so when AcquiredFrameHandle.Release() succeeds, the session takes the one you pass. A Vulkan timeline semaphore, Metal shared event, or D3D12 fence counts up with each frame, so the one you pass stays yours. Keep it valid until a detach or release of the session completes.

See mln_gpu_sync_kind in the C API reference.