mirror of
https://github.com/wolfpld/tracy.git
synced 2025-03-20 07:40:02 +08:00
Add memory discard message.
This can be used to erase all allocations made within the named memory pool. The usual use case would be for arena allocators, which allocate by advancing a pointer and never have to free the memory. There is no tracking of individual allocations and everything is freed frequently, by reseting the pointer, for example once per frame. Since this is used in special-purpose allocators, there is no support for discarding the memory of the default memory pool.
This commit is contained in:
@@ -42,6 +42,8 @@ enum class QueueType : uint8_t
|
||||
MemAllocCallstackNamed,
|
||||
MemFreeCallstack,
|
||||
MemFreeCallstackNamed,
|
||||
MemDiscard,
|
||||
MemDiscardCallstack,
|
||||
GpuZoneBegin,
|
||||
GpuZoneBeginCallstack,
|
||||
GpuZoneBeginAllocSrcLoc,
|
||||
@@ -502,6 +504,13 @@ struct QueueMemFree
|
||||
uint64_t ptr;
|
||||
};
|
||||
|
||||
struct QueueMemDiscard
|
||||
{
|
||||
int64_t time;
|
||||
uint32_t thread;
|
||||
uint64_t name;
|
||||
};
|
||||
|
||||
struct QueueCallstackFat
|
||||
{
|
||||
uint64_t ptr;
|
||||
@@ -742,6 +751,7 @@ struct QueueItem
|
||||
QueueGpuContextNameFat gpuContextNameFat;
|
||||
QueueMemAlloc memAlloc;
|
||||
QueueMemFree memFree;
|
||||
QueueMemDiscard memDiscard;
|
||||
QueueMemNamePayload memName;
|
||||
QueueThreadGroupHint threadGroupHint;
|
||||
QueueCallstackFat callstackFat;
|
||||
@@ -813,6 +823,8 @@ static constexpr size_t QueueDataSize[] = {
|
||||
sizeof( QueueHeader ) + sizeof( QueueMemAlloc ), // callstack, named
|
||||
sizeof( QueueHeader ) + sizeof( QueueMemFree ), // callstack
|
||||
sizeof( QueueHeader ) + sizeof( QueueMemFree ), // callstack, named
|
||||
sizeof( QueueHeader ) + sizeof( QueueMemDiscard ),
|
||||
sizeof( QueueHeader ) + sizeof( QueueMemDiscard ), // callstack
|
||||
sizeof( QueueHeader ) + sizeof( QueueGpuZoneBegin ),
|
||||
sizeof( QueueHeader ) + sizeof( QueueGpuZoneBegin ), // callstack
|
||||
sizeof( QueueHeader ) + sizeof( QueueGpuZoneBeginLean ),// allocated source location
|
||||
|
||||
Reference in New Issue
Block a user