[][src]Module rendy::memory

GPU memory management

Structs

Coherent

Coherent marker.

Data

Full speed GPU access. Optimal for render targets and persistent resources. Avoid memory with host access.

DedicatedAllocator

Dedicated memory allocator that uses memory object per allocation requested.

DedicatedBlock

Memory block allocated from DedicatedAllocator

Download

GPU to CPU data flow with mapping. Used for copying data from Data memory to be read by the host. Host access is guaranteed.

Dynamic

CPU to GPU data flow with update commands. Used for dynamic buffer data, typically constant buffers. Host access is guaranteed. Prefers memory with fast GPU access.

DynamicAllocator

No-fragmentation allocator. Suitable for any type of small allocations. Every freed block can be reused.

DynamicBlock

Memory block allocated from DynamicAllocator

DynamicConfig

Config for DynamicAllocator.

Heaps

Heaps available on particular physical device.

HeapsConfig

Config for Heaps allocator.

LinearAllocator

Linear allocator that return memory from chunk sequentially. It keeps only number of bytes allocated from each chunk. Once chunk is exhausted it is placed into list. When all blocks allocated from head of that list are freed, head is freed as well.

LinearBlock

Memory block allocated from LinearAllocator

LinearConfig

Config for LinearAllocator.

MappedRange

Represents range of the memory mapped to the host. Provides methods for safer host access to the memory.

MaybeCoherent

Value that contains either coherent marker or non-coherent marker.

Memory

Memory object wrapper. Contains size and properties of the memory.

MemoryBlock

Memory block allocated from Heaps.

MemoryHeapUtilization

Memory utilization of one heap.

MemoryTypeUtilization

Memory utilization of one type.

MemoryUtilization

Memory utilization stats.

NonCoherent

Non-coherent marker.

TotalMemoryUtilization

Total memory utilization.

Upload

CPU to GPU data flow with mapping. Used for staging data before copying to the Data memory. Host access is guaranteed.

Enums

HeapsError

Possible errors returned by Heaps.

Kind

Allocator kind.

MemoryUsageValue

Well-known memory usage types.

Traits

Allocator

Allocator trait implemented for various allocators.

Block

Block that owns a Range of the Memory. Implementor must ensure that there can't be any other blocks with overlapping range (either through type system or safety notes for unsafe functions). Provides access to safe memory range mapping.

MemoryUsage

Memory usage trait.

Write

Trait for memory region suitable for host writes.