Top Description Inners Fields Constructors Methods
org.lwjgl.util.vma

public Class VmaStatistics

extends Struct<VmaStatistics>
implements NativeResource
Class Inheritance
All Implemented Interfaces
org.lwjgl.system.NativeResource, java.lang.AutoCloseable
Imports
javax.annotation.*, java.nio.*, org.lwjgl.*, org.lwjgl.system.*

Calculated statistics of memory usage e.g. in a specific memory type, heap, custom pool, or total.

These are fast to calculate.

Layout


struct VmaStatistics {
    uint32_t blockCount;
    uint32_t allocationCount;
    VkDeviceSize blockBytes;
    VkDeviceSize allocationBytes;
}
See Also
Vma#vmaGetHeapBudgets, Vma#vmaGetPoolStatistics

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
VmaStatistics.Buffer

An array of VmaStatistics structs.

Field Summary

Modifier and TypeField and Description
public static final int
ALIGNOF

The struct alignment in bytes.

public static final int
ALLOCATIONBYTES

The struct member offsets.

public static final int
ALLOCATIONCOUNT

The struct member offsets.

public static final int
BLOCKBYTES

The struct member offsets.

public static final int
BLOCKCOUNT

The struct member offsets.

public static final int
SIZEOF

The struct size in bytes.

Inherited from org.lwjgl.system.Struct:
containerDEFAULT_ALIGN_ASDEFAULT_PACK_ALIGNMENT

Constructor Summary

AccessConstructor and Description
protected
VmaStatistics(long address, ByteBuffer container)

public
VmaStatistics(ByteBuffer container)

Creates a VmaStatistics instance at the current position of the specified ByteBuffer container.

Method Summary

Modifier and TypeMethod and Description
public long
allocationBytes()

total number of bytes occupied by all VmaAllocation objects.

public int
allocationCount()

number of VmaAllocation objects allocated.

public long
blockBytes()

number of bytes allocated in VkDeviceMemory blocks.

public int
blockCount()

number of VkDeviceMemory objects - Vulkan memory blocks allocated

public static VmaStatistics
calloc()

Returns a new VmaStatistics instance allocated with memCalloc.

public static VmaStatistics.Buffer
calloc(int
the buffer capacity
capacity
)

Returns a new VmaStatistics.Buffer instance allocated with memCalloc.

public static VmaStatistics
calloc(MemoryStack
the stack from which to allocate
stack
)

Returns a new VmaStatistics instance allocated on the specified MemoryStack and initializes all its bits to zero.

public static VmaStatistics.Buffer
calloc(int
the buffer capacity
capacity
,
MemoryStack
the stack from which to allocate
stack
)

Returns a new VmaStatistics.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.

protected VmaStatistics
create(long
the struct memory address
address
,
ByteBuffer
an optional container buffer, to be referenced strongly by the struct instance.
container
)

Implements abstract org.lwjgl.system.Struct.create.

Similar to the constructor, but returns the exact type of the Struct subclass.
public static VmaStatistics
create()

Returns a new VmaStatistics instance allocated with BufferUtils.

public static VmaStatistics
create(long address)

Returns a new VmaStatistics instance for the specified memory address.

public static VmaStatistics.Buffer
create(int
the buffer capacity
capacity
)

Returns a new VmaStatistics.Buffer instance allocated with BufferUtils.

public static VmaStatistics.Buffer
create(long
the memory address
address
,
int
the buffer capacity
capacity
)

Create a VmaStatistics.Buffer instance at the specified memory.

public static VmaStatistics
createSafe(long address)

Like create, but returns null if address is NULL.

public static VmaStatistics.Buffer
createSafe(long address, int capacity)

Like create, but returns null if address is NULL.

public static VmaStatistics
malloc()

Returns a new VmaStatistics instance allocated with memAlloc.

public static VmaStatistics.Buffer
malloc(int
the buffer capacity
capacity
)

Returns a new VmaStatistics.Buffer instance allocated with memAlloc.

public static VmaStatistics
malloc(MemoryStack
the stack from which to allocate
stack
)

Returns a new VmaStatistics instance allocated on the specified MemoryStack.

public static VmaStatistics.Buffer
malloc(int
the buffer capacity
capacity
,
MemoryStack
the stack from which to allocate
stack
)

Returns a new VmaStatistics.Buffer instance allocated on the specified MemoryStack.

public static long
nallocationBytes(long struct)

Unsafe version of allocationBytes.

public static int
nallocationCount(long struct)

Unsafe version of allocationCount.

public static long
nblockBytes(long struct)

Unsafe version of blockBytes.

public static int
nblockCount(long struct)

Unsafe version of blockCount.

public int
sizeof()

Implements abstract org.lwjgl.system.Struct.sizeof.

Returns sizeof(struct).
Inherited from org.lwjgl.system.Struct:
__array__array__array__checkContainer__checkMalloc__create__getContainer__getContainer__member__member__member__padding__padding__struct__struct__union__unionclearfreeisNullvalidate

Field Detail

ALIGNOFback to summary
public static final int ALIGNOF

The struct alignment in bytes.

ALLOCATIONBYTESback to summary
public static final int ALLOCATIONBYTES

The struct member offsets.

ALLOCATIONCOUNTback to summary
public static final int ALLOCATIONCOUNT

The struct member offsets.

BLOCKBYTESback to summary
public static final int BLOCKBYTES

The struct member offsets.

BLOCKCOUNTback to summary
public static final int BLOCKCOUNT

The struct member offsets.

SIZEOFback to summary
public static final int SIZEOF

The struct size in bytes.

Constructor Detail

VmaStatisticsback to summary
protected VmaStatistics(long address, ByteBuffer container)
VmaStatisticsback to summary
public VmaStatistics(ByteBuffer container)

Creates a VmaStatistics instance at the current position of the specified ByteBuffer container. Changes to the buffer's content will be visible to the struct instance and vice versa.

The created instance holds a strong reference to the container object.

Method Detail

allocationBytesback to summary
public long allocationBytes()

total number of bytes occupied by all VmaAllocation objects.

Always less or equal than blockBytes. Difference (blockBytes - allocationBytes) is the amount of memory allocated from Vulkan but unused by any VmaAllocation.

Annotations
@NativeType:VkDeviceSize
allocationCountback to summary
public int allocationCount()

number of VmaAllocation objects allocated.

Dedicated allocations have their own blocks, so each one adds 1 to allocationCount as well as blockCount.

Annotations
@NativeType:uint32_t
blockBytesback to summary
public long blockBytes()

number of bytes allocated in VkDeviceMemory blocks.

To avoid confusion, please be aware that what Vulkan calls an "allocation" - a whole VkDeviceMemory object (e.g. as in VkPhysicalDeviceLimits::maxMemoryAllocationCount) is called a "block" in VMA, while VMA calls "allocation" a VmaAllocation object that represents a memory region sub-allocated from such block, usually for a single buffer or image.

Annotations
@NativeType:VkDeviceSize
blockCountback to summary
public int blockCount()

number of VkDeviceMemory objects - Vulkan memory blocks allocated

Annotations
@NativeType:uint32_t
callocback to summary
public static VmaStatistics calloc()

Returns a new VmaStatistics instance allocated with memCalloc. The instance must be explicitly freed.

callocback to summary
public static VmaStatistics.Buffer calloc(int capacity)

Returns a new VmaStatistics.Buffer instance allocated with memCalloc. The instance must be explicitly freed.

Parameters
capacity:int

the buffer capacity

callocback to summary
public static VmaStatistics calloc(MemoryStack stack)

Returns a new VmaStatistics instance allocated on the specified MemoryStack and initializes all its bits to zero.

Parameters
stack:MemoryStack

the stack from which to allocate

callocback to summary
public static VmaStatistics.Buffer calloc(int capacity, MemoryStack stack)

Returns a new VmaStatistics.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.

Parameters
capacity:int

the buffer capacity

stack:MemoryStack

the stack from which to allocate

createback to summary
protected VmaStatistics create(long address, ByteBuffer container)

Implements abstract org.lwjgl.system.Struct.create.

Doc from org.lwjgl.system.Struct.create.

Similar to the constructor, but returns the exact type of the Struct subclass.

Effectively, every Struct instance is a factory for more instances of the same type. This is used by StructBuffer.

Parameters
address:long

the struct memory address

container:ByteBuffer

an optional container buffer, to be referenced strongly by the struct instance.

Annotations
@Override
createback to summary
public static VmaStatistics create()

Returns a new VmaStatistics instance allocated with BufferUtils.

createback to summary
public static VmaStatistics create(long address)

Returns a new VmaStatistics instance for the specified memory address.

createback to summary
public static VmaStatistics.Buffer create(int capacity)

Returns a new VmaStatistics.Buffer instance allocated with BufferUtils.

Parameters
capacity:int

the buffer capacity

createback to summary
public static VmaStatistics.Buffer create(long address, int capacity)

Create a VmaStatistics.Buffer instance at the specified memory.

Parameters
address:long

the memory address

capacity:int

the buffer capacity

createSafeback to summary
public static VmaStatistics createSafe(long address)

Like create, but returns null if address is NULL.

Annotations
@Nullable
createSafeback to summary
public static VmaStatistics.Buffer createSafe(long address, int capacity)

Like create, but returns null if address is NULL.

Annotations
@Nullable
mallocback to summary
public static VmaStatistics malloc()

Returns a new VmaStatistics instance allocated with memAlloc. The instance must be explicitly freed.

mallocback to summary
public static VmaStatistics.Buffer malloc(int capacity)

Returns a new VmaStatistics.Buffer instance allocated with memAlloc. The instance must be explicitly freed.

Parameters
capacity:int

the buffer capacity

mallocback to summary
public static VmaStatistics malloc(MemoryStack stack)

Returns a new VmaStatistics instance allocated on the specified MemoryStack.

Parameters
stack:MemoryStack

the stack from which to allocate

mallocback to summary
public static VmaStatistics.Buffer malloc(int capacity, MemoryStack stack)

Returns a new VmaStatistics.Buffer instance allocated on the specified MemoryStack.

Parameters
capacity:int

the buffer capacity

stack:MemoryStack

the stack from which to allocate

nallocationBytesback to summary
public static long nallocationBytes(long struct)

Unsafe version of allocationBytes.

nallocationCountback to summary
public static int nallocationCount(long struct)

Unsafe version of allocationCount.

nblockBytesback to summary
public static long nblockBytes(long struct)

Unsafe version of blockBytes.

nblockCountback to summary
public static int nblockCount(long struct)

Unsafe version of blockCount.

sizeofback to summary
public int sizeof()

Implements abstract org.lwjgl.system.Struct.sizeof.

Doc from org.lwjgl.system.Struct.sizeof.

Returns sizeof(struct).

Annotations
@Override
org.lwjgl.util.vma back to summary

public Class VmaStatistics.Buffer

extends StructBuffer<VmaStatistics, VmaStatistics.Buffer>
implements NativeResource
Class Inheritance
All Implemented Interfaces
org.lwjgl.system.NativeResource, java.lang.AutoCloseable

An array of VmaStatistics structs.

Field Summary

Modifier and TypeField and Description
private static final VmaStatistics

Constructor Summary

AccessConstructor and Description
public
Buffer(ByteBuffer container)

Creates a new VmaStatistics.Buffer instance backed by the specified container.

public
Buffer(long address, int cap)

pack-priv
Buffer(long address, ByteBuffer container, int mark, int pos, int lim, int cap)

Method Summary

Modifier and TypeMethod and Description
public long

Returns:

the value of the VmaStatistics#allocationBytes field.
allocationBytes
()

public int

Returns:

the value of the VmaStatistics#allocationCount field.
allocationCount
()

public long

Returns:

the value of the VmaStatistics#blockBytes field.
blockBytes
()

public int

Returns:

the value of the VmaStatistics#blockCount field.
blockCount
()

protected VmaStatistics
protected VmaStatistics.Buffer
Inherited from org.lwjgl.system.StructBuffer:
applyapplyforEachgetgetgetgetiteratorparallelStreamputputsizeofspliteratorstream

Field Detail

ELEMENT_FACTORYback to summary
private static final VmaStatistics ELEMENT_FACTORY

Constructor Detail

Bufferback to summary
public Buffer(ByteBuffer container)

Creates a new VmaStatistics.Buffer instance backed by the specified container.

Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided by VmaStatistics#SIZEOF, and its mark will be undefined.

The created buffer instance holds a strong reference to the container object.

Bufferback to summary
public Buffer(long address, int cap)
Bufferback to summary
pack-priv Buffer(long address, ByteBuffer container, int mark, int pos, int lim, int cap)

Method Detail

allocationBytesback to summary
public long allocationBytes()
Returns:long

the value of the VmaStatistics#allocationBytes field.

Annotations
@NativeType:VkDeviceSize
allocationCountback to summary
public int allocationCount()
Returns:int

the value of the VmaStatistics#allocationCount field.

Annotations
@NativeType:uint32_t
blockBytesback to summary
public long blockBytes()
Returns:long

the value of the VmaStatistics#blockBytes field.

Annotations
@NativeType:VkDeviceSize
blockCountback to summary
public int blockCount()
Returns:int

the value of the VmaStatistics#blockCount field.

Annotations
@NativeType:uint32_t
getElementFactoryback to summary
protected VmaStatistics getElementFactory()

Implements abstract org.lwjgl.system.StructBuffer.getElementFactory.

Annotations
@Override
selfback to summary
protected VmaStatistics.Buffer self()

Implements abstract org.lwjgl.system.CustomBuffer.self.

Annotations
@Override