MiniAVNativeFence class
GPU sync fence information for zero-copy buffer handoff.
NOT IMPLEMENTED (as of 0.6.0) — every field is always the sentinel.
No miniav backend creates a fence, so syncFd is always -1,
d3d11FencePtr / metalSharedEventPtr / metalFenceValue are always 0.
The type exists so the handoff contract can be extended without a breaking
change; do not write code that depends on receiving a real fence, and do
not read "no fence" as "the producer GPU work is complete".
What the Windows backends do instead: before exposing the shared NT handle
they insert a D3D11_QUERY_EVENT, Flush(), and CPU busy-poll it for at
most ~16 ms. On timeout they log a rate-limited warning and hand the
frame over anyway — under GPU contention a consumer can therefore receive
a texture whose producer-side copy has not finished (torn or black frame).
A consumer needing a hard guarantee must synchronise on its own device.
Constructors
- MiniAVNativeFence({int syncFd = -1, int d3d11FencePtr = 0, int metalFenceValue = 0})
-
const
Properties
- d3d11FencePtr → int
-
Windows:
ID3D11Fence*as integer address, or 0 if none.final - hashCode → int
-
The hash code for this object.
no setterinherited
- metalFenceValue → int
-
macOS/iOS: signaled fence value.
final
-
macOS/iOS:
id<MTLSharedEvent>as integer address, or 0 if none.final - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- syncFd → int
-
Linux/Android: sync_file fd, or -1 if none.
final
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited