2017-09-10 18:10:20 +00:00
|
|
|
#ifndef __TRACY_HPP__
|
|
|
|
#define __TRACY_HPP__
|
|
|
|
|
2017-11-25 14:18:23 +00:00
|
|
|
#include "common/TracyColor.hpp"
|
2017-10-22 15:05:35 +00:00
|
|
|
#include "common/TracySystem.hpp"
|
|
|
|
|
2017-10-16 19:34:39 +00:00
|
|
|
#ifndef TRACY_ENABLE
|
2017-09-18 17:08:54 +00:00
|
|
|
|
|
|
|
#define ZoneScoped
|
2017-11-14 22:06:45 +00:00
|
|
|
#define ZoneScopedN(x)
|
2017-09-25 20:46:14 +00:00
|
|
|
#define ZoneScopedC(x)
|
2017-11-14 22:06:45 +00:00
|
|
|
#define ZoneScopedNC(x,y)
|
2017-09-25 20:46:14 +00:00
|
|
|
|
2017-09-28 17:20:19 +00:00
|
|
|
#define ZoneText(x,y)
|
2017-09-28 17:28:24 +00:00
|
|
|
#define ZoneName(x)
|
2017-09-28 17:20:19 +00:00
|
|
|
|
2017-09-18 17:08:54 +00:00
|
|
|
#define FrameMark
|
|
|
|
|
2017-10-04 13:41:02 +00:00
|
|
|
#define TracyLockable( type, varname ) type varname;
|
2017-10-12 18:00:53 +00:00
|
|
|
#define TracyLockableN( type, varname, desc ) type varname;
|
2017-12-10 20:49:45 +00:00
|
|
|
#define TracySharedLockable( type, varname ) type varname;
|
|
|
|
#define TracySharedLockableN( type, varname, desc ) type varname;
|
2017-10-04 13:41:02 +00:00
|
|
|
#define LockableBase( type ) type
|
2017-12-10 20:49:45 +00:00
|
|
|
#define SharedLockableBase( type ) type
|
2017-12-05 15:36:33 +00:00
|
|
|
#define LockMark(x) (void)x;
|
2017-10-04 13:41:02 +00:00
|
|
|
|
2017-10-13 00:07:03 +00:00
|
|
|
#define TracyPlot(x,y)
|
|
|
|
|
2017-10-15 11:06:20 +00:00
|
|
|
#define TracyMessage(x,y)
|
2017-10-15 11:06:49 +00:00
|
|
|
#define TracyMessageL(x)
|
2017-10-14 11:23:13 +00:00
|
|
|
|
2018-04-04 17:44:44 +00:00
|
|
|
#define TracyAlloc(x,y)
|
|
|
|
#define TracyFree(x)
|
2018-06-19 17:36:28 +00:00
|
|
|
#define TracyAllocS(x,y,z)
|
|
|
|
#define TracyFreeS(x,y)
|
2018-04-04 17:44:44 +00:00
|
|
|
|
2017-09-18 17:08:54 +00:00
|
|
|
#else
|
|
|
|
|
2017-10-16 19:28:38 +00:00
|
|
|
#include "client/TracyLock.hpp"
|
|
|
|
#include "client/TracyProfiler.hpp"
|
|
|
|
#include "client/TracyScoped.hpp"
|
2017-09-10 18:10:20 +00:00
|
|
|
|
2017-11-14 22:06:45 +00:00
|
|
|
#define ZoneScoped static const tracy::SourceLocation __tracy_source_location { nullptr, __FUNCTION__, __FILE__, (uint32_t)__LINE__, 0 }; tracy::ScopedZone ___tracy_scoped_zone( &__tracy_source_location );
|
|
|
|
#define ZoneScopedN( name ) static const tracy::SourceLocation __tracy_source_location { name, __FUNCTION__, __FILE__, (uint32_t)__LINE__, 0 }; tracy::ScopedZone ___tracy_scoped_zone( &__tracy_source_location );
|
|
|
|
#define ZoneScopedC( color ) static const tracy::SourceLocation __tracy_source_location { nullptr, __FUNCTION__, __FILE__, (uint32_t)__LINE__, color }; tracy::ScopedZone ___tracy_scoped_zone( &__tracy_source_location );
|
|
|
|
#define ZoneScopedNC( name, color ) static const tracy::SourceLocation __tracy_source_location { name, __FUNCTION__, __FILE__, (uint32_t)__LINE__, color }; tracy::ScopedZone ___tracy_scoped_zone( &__tracy_source_location );
|
2017-09-25 20:46:14 +00:00
|
|
|
|
2017-09-27 00:18:17 +00:00
|
|
|
#define ZoneText( txt, size ) ___tracy_scoped_zone.Text( txt, size );
|
|
|
|
|
2017-09-15 22:30:27 +00:00
|
|
|
#define FrameMark tracy::Profiler::FrameMark();
|
2017-09-10 18:10:20 +00:00
|
|
|
|
2017-11-14 22:06:45 +00:00
|
|
|
#define TracyLockable( type, varname ) tracy::Lockable<type> varname { [] () -> const tracy::SourceLocation* { static const tracy::SourceLocation srcloc { nullptr, #type " " #varname, __FILE__, __LINE__, 0 }; return &srcloc; }() };
|
|
|
|
#define TracyLockableN( type, varname, desc ) tracy::Lockable<type> varname { [] () -> const tracy::SourceLocation* { static const tracy::SourceLocation srcloc { nullptr, desc, __FILE__, __LINE__, 0 }; return &srcloc; }() };
|
2017-12-10 20:49:45 +00:00
|
|
|
#define TracySharedLockable( type, varname ) tracy::SharedLockable<type> varname { [] () -> const tracy::SourceLocation* { static const tracy::SourceLocation srcloc { nullptr, #type " " #varname, __FILE__, __LINE__, 0 }; return &srcloc; }() };
|
|
|
|
#define TracySharedLockableN( type, varname, desc ) tracy::SharedLockable<type> varname { [] () -> const tracy::SourceLocation* { static const tracy::SourceLocation srcloc { nullptr, desc, __FILE__, __LINE__, 0 }; return &srcloc; }() };
|
2017-10-04 13:41:02 +00:00
|
|
|
#define LockableBase( type ) tracy::Lockable<type>
|
2017-12-10 20:49:45 +00:00
|
|
|
#define SharedLockableBase( type ) tracy::SharedLockable<type>
|
2017-11-14 22:06:45 +00:00
|
|
|
#define LockMark( varname ) static const tracy::SourceLocation __tracy_lock_location_##varname { nullptr, __FUNCTION__, __FILE__, (uint32_t)__LINE__, 0 }; varname.Mark( &__tracy_lock_location_##varname );
|
2017-10-04 13:41:02 +00:00
|
|
|
|
2017-10-13 00:07:03 +00:00
|
|
|
#define TracyPlot( name, val ) tracy::Profiler::PlotData( name, val );
|
|
|
|
|
2017-10-14 11:23:13 +00:00
|
|
|
#define TracyMessage( txt, size ) tracy::Profiler::Message( txt, size );
|
2017-10-15 11:06:49 +00:00
|
|
|
#define TracyMessageL( txt ) tracy::Profiler::Message( txt );
|
2017-10-14 11:23:13 +00:00
|
|
|
|
2018-03-31 19:56:05 +00:00
|
|
|
#define TracyAlloc( ptr, size ) tracy::Profiler::MemAlloc( ptr, size );
|
|
|
|
#define TracyFree( ptr ) tracy::Profiler::MemFree( ptr );
|
2018-06-19 17:38:56 +00:00
|
|
|
|
|
|
|
#ifdef TRACY_HAS_CALLSTACK
|
2018-06-21 22:56:01 +00:00
|
|
|
# define ZoneScopedS( depth ) static const tracy::SourceLocation __tracy_source_location { nullptr, __FUNCTION__, __FILE__, (uint32_t)__LINE__, 0 }; tracy::ScopedZone ___tracy_scoped_zone( &__tracy_source_location, depth );
|
|
|
|
# define ZoneScopedNS( name, depth ) static const tracy::SourceLocation __tracy_source_location { name, __FUNCTION__, __FILE__, (uint32_t)__LINE__, 0 }; tracy::ScopedZone ___tracy_scoped_zone( &__tracy_source_location, depth );
|
|
|
|
# define ZoneScopedCS( color, depth ) __tracy_source_location { nullptr, __FUNCTION__, __FILE__, (uint32_t)__LINE__, color }; tracy::ScopedZone ___tracy_scoped_zone( &__tracy_source_location, depth );
|
|
|
|
# define ZoneScopedNCS( name, color, depth ) static const tracy::SourceLocation __tracy_source_location { name, __FUNCTION__, __FILE__, (uint32_t)__LINE__, color }; tracy::ScopedZone ___tracy_scoped_zone( &__tracy_source_location, depth );
|
|
|
|
|
2018-06-19 17:38:56 +00:00
|
|
|
# define TracyAllocS( ptr, size, depth ) tracy::Profiler::MemAllocCallstack( ptr, size, depth );
|
|
|
|
# define TracyFreeS( ptr, depth ) tracy::Profiler::MemFreeCallstack( ptr, depth );
|
|
|
|
#else
|
2018-06-21 22:56:01 +00:00
|
|
|
# define ZoneScopedS( depth ) ZoneScoped
|
|
|
|
# define ZoneScopedNS( name, depth ) ZoneScopedN( name )
|
|
|
|
# define ZoneScopedCS( color, depth ) ZoneScopedC( color )
|
|
|
|
# define ZoneScopedNCS( name, color, depth ) ZoneScopedNC( name, color )
|
|
|
|
|
2018-06-19 17:38:56 +00:00
|
|
|
# define TracyAllocS( ptr, size, depth ) TracyAlloc( ptr, size )
|
|
|
|
# define TracyFreeS( ptr, depth ) TracyFree( ptr )
|
|
|
|
#endif
|
2018-03-31 19:56:05 +00:00
|
|
|
|
2017-09-10 18:10:20 +00:00
|
|
|
#endif
|
2017-09-18 17:08:54 +00:00
|
|
|
|
|
|
|
#endif
|