Class VulkanHostAllocatorTracker
- java.lang.Object
-
- com.io7m.jcoronado.allocation_tracker.VulkanHostAllocatorTracker
-
- All Implemented Interfaces:
VulkanHostAllocatorCallbacksType.AllocationFunctionType
,VulkanHostAllocatorCallbacksType.DeallocationFunctionType
,VulkanHostAllocatorCallbacksType.InternalAllocationNotificationType
,VulkanHostAllocatorCallbacksType.InternalFreeNotificationType
,VulkanHostAllocatorCallbacksType.ReallocationFunctionType
,VulkanHostAllocatorType
public final class VulkanHostAllocatorTracker extends java.lang.Object implements VulkanHostAllocatorType
A delegating allocation tracker that logs and tracks allocations.
-
-
Constructor Summary
Constructors Constructor Description VulkanHostAllocatorTracker(VulkanHostAllocatorType in_delegate)
Create an allocator tracker.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description long
allocate(long size, long alignment, VulkanSystemAllocationScope scope)
Allocatesize
octets of memory, aligned toalignment
, of scopescope
.long
allocatedCacheScopeOctets()
long
allocatedCommandScopeOctets()
long
allocatedDeviceScopeOctets()
long
allocatedInstanceScopeOctets()
long
allocatedObjectScopeOctets()
VulkanHostAllocatorCallbacks
createCallbacks()
void
deallocate(long address)
Deallocate memory.void
onAllocation(long size, VulkanInternalAllocation type, VulkanSystemAllocationScope scope)
Called upon internal allocations.void
onFree(long size, VulkanInternalAllocation type, VulkanSystemAllocationScope scope)
Called upon internal deallocations.long
reallocate(long address, long size, long alignment, VulkanSystemAllocationScope scope)
Reallocatesize
octets of memory, aligned toalignment
, of scopescope
.
-
-
-
Constructor Detail
-
VulkanHostAllocatorTracker
public VulkanHostAllocatorTracker(VulkanHostAllocatorType in_delegate)
Create an allocator tracker.- Parameters:
in_delegate
- The actual allocator
-
-
Method Detail
-
allocate
public long allocate(long size, long alignment, VulkanSystemAllocationScope scope)
Description copied from interface:VulkanHostAllocatorCallbacksType.AllocationFunctionType
Allocatesize
octets of memory, aligned toalignment
, of scopescope
. The function must return the address of the allocated memory as an integer, or0
if the allocation has failed. The function MUST NOT raise exceptions under any circumstances.- Specified by:
allocate
in interfaceVulkanHostAllocatorCallbacksType.AllocationFunctionType
- Parameters:
size
- The size of the allocationalignment
- The alignment of the allocationscope
- The scope of the allocation- Returns:
- The memory address
-
reallocate
public long reallocate(long address, long size, long alignment, VulkanSystemAllocationScope scope)
Description copied from interface:VulkanHostAllocatorCallbacksType.ReallocationFunctionType
Reallocatesize
octets of memory, aligned toalignment
, of scopescope
. The function must return the address of the allocated memory as an integer, or0
if the allocation has failed. The function MUST NOT raise exceptions under any circumstances.- Specified by:
reallocate
in interfaceVulkanHostAllocatorCallbacksType.ReallocationFunctionType
- Parameters:
address
- The original memory addresssize
- The size of the allocationalignment
- The alignment of the allocationscope
- The scope of the allocation- Returns:
- The memory address
-
deallocate
public void deallocate(long address)
Description copied from interface:VulkanHostAllocatorCallbacksType.DeallocationFunctionType
Deallocate memory. The function MUST NOT raise exceptions under any circumstances.- Specified by:
deallocate
in interfaceVulkanHostAllocatorCallbacksType.DeallocationFunctionType
- Parameters:
address
- The original memory address
-
onAllocation
public void onAllocation(long size, VulkanInternalAllocation type, VulkanSystemAllocationScope scope)
Description copied from interface:VulkanHostAllocatorCallbacksType.InternalAllocationNotificationType
Called upon internal allocations. The function MUST NOT raise exceptions under any circumstances.- Specified by:
onAllocation
in interfaceVulkanHostAllocatorCallbacksType.InternalAllocationNotificationType
- Parameters:
size
- The allocation size in bytestype
- The type of allocationscope
- The scope of the allocation
-
onFree
public void onFree(long size, VulkanInternalAllocation type, VulkanSystemAllocationScope scope)
Description copied from interface:VulkanHostAllocatorCallbacksType.InternalFreeNotificationType
Called upon internal deallocations. The function MUST NOT raise exceptions under any circumstances.- Specified by:
onFree
in interfaceVulkanHostAllocatorCallbacksType.InternalFreeNotificationType
- Parameters:
size
- The allocation size in bytestype
- The type of allocationscope
- The scope of the allocation
-
createCallbacks
public VulkanHostAllocatorCallbacks createCallbacks()
- Specified by:
createCallbacks
in interfaceVulkanHostAllocatorType
- Returns:
- The methods as a set of callbacks
-
allocatedCommandScopeOctets
public long allocatedCommandScopeOctets()
- Returns:
- The number of octets allocated at command scope
-
allocatedCacheScopeOctets
public long allocatedCacheScopeOctets()
- Returns:
- The number of octets allocated at cache scope
-
allocatedDeviceScopeOctets
public long allocatedDeviceScopeOctets()
- Returns:
- The number of octets allocated at device scope
-
allocatedInstanceScopeOctets
public long allocatedInstanceScopeOctets()
- Returns:
- The number of octets allocated at instance scope
-
allocatedObjectScopeOctets
public long allocatedObjectScopeOctets()
- Returns:
- The number of octets allocated at object scope
-
-