Allocator

Memory allocator for a device

Constructors

this
this(Device device, AllocatorOptions options)
Undocumented in source.

Members

Functions

allocate
MemAlloc allocate(MemoryRequirements requirements, AllocOptions options)

Allocate memory for the given requirements

allocateBuffer
BufferAlloc allocateBuffer(BufferUsage usage, size_t size, AllocOptions options)

Create a buffer, then allocate and bind memory for its requirements

allocateImage
ImageAlloc allocateImage(ImageInfo info, AllocOptions options)

Create an image, then allocate and bind memory for its requirements

collectStats
AllocStats collectStats()
Undocumented in source. Be warned that the author may not have intended to support it.
dispose
void dispose()
Undocumented in source. Be warned that the author may not have intended to support it.
tryAllocate
bool tryAllocate(MemoryRequirements requirements, uint memoryTypeIndex, AllocOptions options, ResourceLayout layout, AllocResult result)

Attempt to allocate memory for the given index and for given requirements. If successful, result is filled with necessary data.

Properties

device
Device device [@property getter]

Device this allocator is bound to.

Variables

_device
Device _device;
Undocumented in source.
_linearOptimalGranularity
size_t _linearOptimalGranularity;
Undocumented in source.
_memProps
MemoryProperties _memProps;
Undocumented in source.
_options
AllocatorOptions _options;
Undocumented in source.

Inherited Members

From AtomicRefCounted

refCount
size_t refCount [@property getter]
refCountShared
size_t refCountShared [@property getter]

Atomically loads the number of active references.

retain
void retain()
retainShared
void retainShared()

Atomically increment the reference count.

release
bool release(Flag!"disposeOnZero" disposeOnZero)
releaseShared
bool releaseShared(Flag!"disposeOnZero" disposeOnZero)

Atomically decrement the reference count. If refCount reaches zero, and disposeOnZero is set, the object is locked with its own mutex, and dispose is called. In most cases, the calling code should set disposeOnZero, unless it is intended to release the object to give it away. (such as at the end of a builder function)

rcLock
bool rcLock()
rcLockShared
bool rcLockShared()

Returns whether the refCount >= 1. This increases the refCount by 1. rcLock should be used to keep weak reference and ensures that the resource is not disposed. The operation is atomic.

dispose
void dispose()

Dispose the underlying resource

Meta