Add 2D mesh debug interface.

This commit is contained in:
Bartosz Taudul
2019-08-05 16:23:54 +02:00
parent aada588129
commit 5d673eb8f2
4 changed files with 60 additions and 1 deletions

View File

@@ -58,11 +58,15 @@
#define TracyAllocS(x,y,z)
#define TracyFreeS(x,y)
#define TracyMeshTri(v0,v1,v2,v3,v4,v5)
#define TracyMeshEnd
#else
#include "client/TracyLock.hpp"
#include "client/TracyProfiler.hpp"
#include "client/TracyScoped.hpp"
#include "client/TracyMesh.hpp"
#if defined TRACY_HAS_CALLSTACK && defined TRACY_CALLSTACK
# define ZoneNamed( varname, active ) static const tracy::SourceLocationData TracyConcat(__tracy_source_location,__LINE__) { nullptr, __FUNCTION__, __FILE__, (uint32_t)__LINE__, 0 }; tracy::ScopedZone varname( &TracyConcat(__tracy_source_location,__LINE__), TRACY_CALLSTACK, active );
@@ -143,6 +147,9 @@
# define TracyFreeS( ptr, depth ) TracyFree( ptr )
#endif
#define TracyMeshTri( x0, y0, x1, y1, x2, y2 ) tracy::mesh::MeshTri( x0, y0, x1, y1, x2, y2 )
#define TracyMeshEnd tracy::mesh::MeshEnd();
#endif
#endif

40
client/TracyMesh.hpp Normal file
View File

@@ -0,0 +1,40 @@
#ifndef __TRACYMESH_HPP__
#define __TRACYMESH_HPP__
#include "TracyProfiler.hpp"
namespace tracy
{
namespace mesh
{
static void MeshTri( float x0, float y0, float x1, float y1, float x2, float y2 )
{
Magic magic;
auto token = GetToken();
auto& tail = token->get_tail_index();
auto item = token->enqueue_begin( magic );
MemWrite( &item->hdr.type, QueueType::MeshTri );
MemWrite( &item->meshTri.x0, x0 );
MemWrite( &item->meshTri.y0, y0 );
MemWrite( &item->meshTri.x1, x1 );
MemWrite( &item->meshTri.y1, y1 );
MemWrite( &item->meshTri.x2, x2 );
MemWrite( &item->meshTri.y2, y2 );
tail.store( magic + 1, std::memory_order_release );
}
static void MeshEnd()
{
Magic magic;
auto token = GetToken();
auto& tail = token->get_tail_index();
auto item = token->enqueue_begin( magic );
MemWrite( &item->hdr.type, QueueType::MeshEnd );
tail.store( magic + 1, std::memory_order_release );
}
}
}
#endif

View File

@@ -9,7 +9,7 @@
namespace tracy
{
enum : uint32_t { ProtocolVersion = 14 };
enum : uint32_t { ProtocolVersion = 15 };
enum : uint32_t { BroadcastVersion = 0 };
using lz4sz_t = uint32_t;

View File

@@ -56,6 +56,8 @@ enum class QueueType : uint8_t
CallstackFrameSize,
CallstackFrame,
SysTimeReport,
MeshTri,
MeshEnd,
StringData,
ThreadName,
CustomStringData,
@@ -297,6 +299,13 @@ struct QueueSysTime
float sysTime;
};
struct QueueMeshTri
{
float x0, y0;
float x1, y1;
float x2, y2;
};
struct QueueHeader
{
union
@@ -342,6 +351,7 @@ struct QueueItem
QueueCallstackFrame callstackFrame;
QueueCrashReport crashReport;
QueueSysTime sysTime;
QueueMeshTri meshTri;
};
};
#pragma pack()
@@ -399,6 +409,8 @@ static const size_t QueueDataSize[] = {
sizeof( QueueHeader ) + sizeof( QueueCallstackFrameSize ),
sizeof( QueueHeader ) + sizeof( QueueCallstackFrame ),
sizeof( QueueHeader ) + sizeof( QueueSysTime ),
sizeof( QueueHeader ) + sizeof( QueueMeshTri ),
sizeof( QueueHeader ), // mesh end
// keep all QueueStringTransfer below
sizeof( QueueHeader ) + sizeof( QueueStringTransfer ), // string data
sizeof( QueueHeader ) + sizeof( QueueStringTransfer ), // thread name