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

public Class VmaDetailedStatistics

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

More detailed statistics than VmaStatistics.

These are slower to calculate. Use for debugging purposes.

Previous version of the statistics API provided averages, but they have been removed because they can be easily calculated as:


VkDeviceSize allocationSizeAvg = detailedStats.statistics.allocationBytes / detailedStats.statistics.allocationCount;
VkDeviceSize unusedBytes = detailedStats.statistics.blockBytes - detailedStats.statistics.allocationBytes;
VkDeviceSize unusedRangeSizeAvg = unusedBytes / detailedStats.unusedRangeCount;

Layout


struct VmaDetailedStatistics {
    VmaStatistics statistics;
    uint32_t unusedRangeCount;
    VkDeviceSize allocationSizeMin;
    VkDeviceSize allocationSizeMax;
    VkDeviceSize unusedRangeSizeMin;
    VkDeviceSize unusedRangeSizeMax;
}
See Also
Vma#vmaCalculateStatistics, Vma#vmaCalculatePoolStatistics

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class

Field Summary

Modifier and TypeField and Description
public static final int
ALIGNOF

The struct alignment in bytes.

public static final int
ALLOCATIONSIZEMAX

The struct member offsets.

public static final int
ALLOCATIONSIZEMIN

The struct member offsets.

public static final int
SIZEOF

The struct size in bytes.

public static final int
STATISTICS

The struct member offsets.

public static final int
UNUSEDRANGECOUNT

The struct member offsets.

public static final int
UNUSEDRANGESIZEMAX

The struct member offsets.

public static final int
UNUSEDRANGESIZEMIN

The struct member offsets.

Inherited from org.lwjgl.system.Struct:
containerDEFAULT_ALIGN_ASDEFAULT_PACK_ALIGNMENT

Constructor Summary

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

public
VmaDetailedStatistics(ByteBuffer container)

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

Method Summary

Modifier and TypeMethod and Description
public long
allocationSizeMax()

largest allocation size.

public long
allocationSizeMin()

smallest allocation size.

public static VmaDetailedStatistics
calloc()

Returns a new VmaDetailedStatistics instance allocated with memCalloc.

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

Returns a new VmaDetailedStatistics.Buffer instance allocated with memCalloc.

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

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

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

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

protected VmaDetailedStatistics
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 VmaDetailedStatistics
create()

Returns a new VmaDetailedStatistics instance allocated with BufferUtils.

public static VmaDetailedStatistics
create(long address)

Returns a new VmaDetailedStatistics instance for the specified memory address.

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

Returns a new VmaDetailedStatistics.Buffer instance allocated with BufferUtils.

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

Create a VmaDetailedStatistics.Buffer instance at the specified memory.

public static VmaDetailedStatistics
createSafe(long address)

Like create, but returns null if address is NULL.

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

Like create, but returns null if address is NULL.

public static VmaDetailedStatistics
malloc()

Returns a new VmaDetailedStatistics instance allocated with memAlloc.

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

Returns a new VmaDetailedStatistics.Buffer instance allocated with memAlloc.

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

Returns a new VmaDetailedStatistics instance allocated on the specified MemoryStack.

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

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

public static long
nallocationSizeMax(long struct)

Unsafe version of allocationSizeMax.

public static long
nallocationSizeMin(long struct)

Unsafe version of allocationSizeMin.

public static VmaStatistics
nstatistics(long struct)

Unsafe version of statistics.

public static int
nunusedRangeCount(long struct)

Unsafe version of unusedRangeCount.

public static long
nunusedRangeSizeMax(long struct)

Unsafe version of unusedRangeSizeMax.

public static long
nunusedRangeSizeMin(long struct)

Unsafe version of unusedRangeSizeMin.

public int
sizeof()

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

Returns sizeof(struct).
public VmaStatistics
statistics()

basic statistics

public int
unusedRangeCount()

number of free ranges of memory between allocations

public long
unusedRangeSizeMax()

largest empty range size.

public long
unusedRangeSizeMin()

smallest empty range size.

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.

ALLOCATIONSIZEMAXback to summary
public static final int ALLOCATIONSIZEMAX

The struct member offsets.

ALLOCATIONSIZEMINback to summary
public static final int ALLOCATIONSIZEMIN

The struct member offsets.

SIZEOFback to summary
public static final int SIZEOF

The struct size in bytes.

STATISTICSback to summary
public static final int STATISTICS

The struct member offsets.

UNUSEDRANGECOUNTback to summary
public static final int UNUSEDRANGECOUNT

The struct member offsets.

UNUSEDRANGESIZEMAXback to summary
public static final int UNUSEDRANGESIZEMAX

The struct member offsets.

UNUSEDRANGESIZEMINback to summary
public static final int UNUSEDRANGESIZEMIN

The struct member offsets.

Constructor Detail

VmaDetailedStatisticsback to summary
protected VmaDetailedStatistics(long address, ByteBuffer container)
VmaDetailedStatisticsback to summary
public VmaDetailedStatistics(ByteBuffer container)

Creates a VmaDetailedStatistics 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

allocationSizeMaxback to summary
public long allocationSizeMax()

largest allocation size. 0 if there are 0 allocations.

Annotations
@NativeType:VkDeviceSize
allocationSizeMinback to summary
public long allocationSizeMin()

smallest allocation size. VK_WHOLE_SIZE if there are 0 allocations.

Annotations
@NativeType:VkDeviceSize
callocback to summary
public static VmaDetailedStatistics calloc()

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

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

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

Parameters
capacity:int

the buffer capacity

callocback to summary
public static VmaDetailedStatistics calloc(MemoryStack stack)

Returns a new VmaDetailedStatistics 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 VmaDetailedStatistics.Buffer calloc(int capacity, MemoryStack stack)

Returns a new VmaDetailedStatistics.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 VmaDetailedStatistics 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 VmaDetailedStatistics create()

Returns a new VmaDetailedStatistics instance allocated with BufferUtils.

createback to summary
public static VmaDetailedStatistics create(long address)

Returns a new VmaDetailedStatistics instance for the specified memory address.

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

Returns a new VmaDetailedStatistics.Buffer instance allocated with BufferUtils.

Parameters
capacity:int

the buffer capacity

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

Create a VmaDetailedStatistics.Buffer instance at the specified memory.

Parameters
address:long

the memory address

capacity:int

the buffer capacity

createSafeback to summary
public static VmaDetailedStatistics createSafe(long address)

Like create, but returns null if address is NULL.

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

Like create, but returns null if address is NULL.

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

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

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

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

Parameters
capacity:int

the buffer capacity

mallocback to summary
public static VmaDetailedStatistics malloc(MemoryStack stack)

Returns a new VmaDetailedStatistics instance allocated on the specified MemoryStack.

Parameters
stack:MemoryStack

the stack from which to allocate

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

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

Parameters
capacity:int

the buffer capacity

stack:MemoryStack

the stack from which to allocate

nallocationSizeMaxback to summary
public static long nallocationSizeMax(long struct)

Unsafe version of allocationSizeMax.

nallocationSizeMinback to summary
public static long nallocationSizeMin(long struct)

Unsafe version of allocationSizeMin.

nstatisticsback to summary
public static VmaStatistics nstatistics(long struct)

Unsafe version of statistics.

nunusedRangeCountback to summary
public static int nunusedRangeCount(long struct)

Unsafe version of unusedRangeCount.

nunusedRangeSizeMaxback to summary
public static long nunusedRangeSizeMax(long struct)

Unsafe version of unusedRangeSizeMax.

nunusedRangeSizeMinback to summary
public static long nunusedRangeSizeMin(long struct)

Unsafe version of unusedRangeSizeMin.

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
statisticsback to summary
public VmaStatistics statistics()

basic statistics

unusedRangeCountback to summary
public int unusedRangeCount()

number of free ranges of memory between allocations

Annotations
@NativeType:uint32_t
unusedRangeSizeMaxback to summary
public long unusedRangeSizeMax()

largest empty range size. 0 if there are 0 empty ranges.

Annotations
@NativeType:VkDeviceSize
unusedRangeSizeMinback to summary
public long unusedRangeSizeMin()

smallest empty range size. VK_WHOLE_SIZE if there are 0 empty ranges.

Annotations
@NativeType:VkDeviceSize
org.lwjgl.util.vma back to summary

public Class VmaDetailedStatistics.Buffer

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

An array of VmaDetailedStatistics structs.

Field Summary

Modifier and TypeField and Description
private static final VmaDetailedStatistics

Constructor Summary

AccessConstructor and Description
public
Buffer(ByteBuffer container)

Creates a new VmaDetailedStatistics.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
public long
protected VmaDetailedStatistics
protected VmaDetailedStatistics.Buffer
public VmaStatistics
public int

Returns:

the value of the VmaDetailedStatistics#unusedRangeCount field.
unusedRangeCount
()

public long
public long
Inherited from org.lwjgl.system.StructBuffer:
applyapplyforEachgetgetgetgetiteratorparallelStreamputputsizeofspliteratorstream

Field Detail

ELEMENT_FACTORYback to summary
private static final VmaDetailedStatistics ELEMENT_FACTORY

Constructor Detail

Bufferback to summary
public Buffer(ByteBuffer container)

Creates a new VmaDetailedStatistics.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 VmaDetailedStatistics#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

allocationSizeMaxback to summary
public long allocationSizeMax()
Returns:long

the value of the VmaDetailedStatistics#allocationSizeMax field.

Annotations
@NativeType:VkDeviceSize
allocationSizeMinback to summary
public long allocationSizeMin()
Returns:long

the value of the VmaDetailedStatistics#allocationSizeMin field.

Annotations
@NativeType:VkDeviceSize
getElementFactoryback to summary
protected VmaDetailedStatistics getElementFactory()

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

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

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

Annotations
@Override
statisticsback to summary
public VmaStatistics statistics()
Returns:VmaStatistics

a VmaStatistics view of the VmaDetailedStatistics#statistics field.

unusedRangeCountback to summary
public int unusedRangeCount()
Returns:int

the value of the VmaDetailedStatistics#unusedRangeCount field.

Annotations
@NativeType:uint32_t
unusedRangeSizeMaxback to summary
public long unusedRangeSizeMax()
Returns:long

the value of the VmaDetailedStatistics#unusedRangeSizeMax field.

Annotations
@NativeType:VkDeviceSize
unusedRangeSizeMinback to summary
public long unusedRangeSizeMin()
Returns:long

the value of the VmaDetailedStatistics#unusedRangeSizeMin field.

Annotations
@NativeType:VkDeviceSize