Vulkan Schnee
0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
TracyMacros.hpp
Go to the documentation of this file.
1
#pragma once
2
3
// Force TRACY_ENABLE if ENABLE_TRACY is defined by CMake
4
#ifdef ENABLE_TRACY
5
#ifndef TRACY_ENABLE
6
#define TRACY_ENABLE
7
#endif
8
#endif
9
10
#ifdef TRACY_ENABLE
11
#include "tracy/Tracy.hpp"
12
#include <sstream>
13
14
#ifdef USE_VULKAN
15
#include <vulkan/vulkan.h>
16
#include "tracy/TracyVulkan.hpp"
17
#endif
18
19
#define TRACY_ZONE_SCOPED ZoneScoped
20
#define TRACY_ZONE_SCOPED_NAMED(name) ZoneScopedN(name)
21
#define TRACY_ZONE_SCOPED_NAMED_D(stream_expr) \
22
ZoneScoped; \
23
do { \
24
std::stringstream __tracy_name_stream; \
25
__tracy_name_stream << stream_expr; \
26
ZoneName(__tracy_name_stream.str().c_str(), __tracy_name_stream.str().size()); \
27
} while(0)
28
29
#define TRACY_LOCKABLE(type, varname, desc) TracyLockableN(type, varname, desc)
30
#define TRACY_SHARED_LOCKABLE(type, varname, desc) TracySharedLockableN(type, varname, desc)
31
#define TRACY_LOCK_GUARD(type, varname, var) std::lock_guard<tracy::Lockable<type>> varname(var);
32
#define TRACY_SHARED_LOCK(type, varname, var) std::shared_lock<tracy::SharedLockable<type>> varname(var);
33
#define TRACY_UNIQUE_LOCK(type, varname, var) std::unique_lock<tracy::SharedLockable<type>> varname(var);
34
35
#define TRACY_ZONE_SCOPED_FUNCTION ZoneScopedN(__FUNCTION__)
36
#define TRACY_ZONE_SCOPED_NAMED_ASSET(name) ZoneScopedNC(name, 0xFF6B6B)
37
#define TRACY_ZONE_SCOPED_NAMED_D_ASSET(stream_expr) \
38
ZoneScopedC(0xFF6B6B); \
39
do { \
40
std::stringstream __tracy_name_stream; \
41
__tracy_name_stream << stream_expr; \
42
ZoneName(__tracy_name_stream.str().c_str(), __tracy_name_stream.str().size()); \
43
} while(0)
44
45
#define TRACY_FRAME_MARK FrameMark
46
47
#define TRACY_MESSAGE_C(stream_expr, color) \
48
do { \
49
std::stringstream __tracy_message_stream; \
50
__tracy_message_stream << stream_expr; \
51
const std::string __tracy_message = __tracy_message_stream.str(); \
52
TracyMessageC(__tracy_message.c_str(), __tracy_message.size(), color); \
53
} while(0)
54
55
// Named memory pool tracking (for VRAM resources)
56
#define TRACY_ALLOC_N(ptr, size, name) TracyAllocN(ptr, size, name)
57
#define TRACY_FREE_N(ptr, name) TracyFreeN(ptr, name)
58
59
#ifdef USE_VULKAN
60
#define TRACY_VK_CONTEXT(phys_device, device, queue, cmd_buffer) tracy::CreateVkContext(phys_device, device, queue, cmd_buffer)
61
#define TRACY_VK_DESTROY_CONTEXT(vk_context) tracy::DestroyVulkan(vk_context)
62
#define TRACY_VK_ZONE(vk_context, cmd_buffer, name) TracyVkZone(vk_context, cmd_buffer, name)
63
#define TRACY_VK_ZONE_NAMED(vk_context, cmd_buffer, name, active) TracyVkNamedZone(vk_context, cmd_buffer, name, active)
64
#define TRACY_VK_COLLECT(vk_context, cmd_buffer) TracyVkCollect(vk_context, cmd_buffer)
65
#define TRACY_VK_CONTEXT_CALIBRATED(phys_device, device, queue, cmd_buffer, getTimeDomains, getCalibratedTimestamps) \
66
TracyVkContextCalibrated(phys_device, device, queue, cmd_buffer, getTimeDomains, getCalibratedTimestamps)
67
#define TRACY_VK_CONTEXT_HOST_CALIBRATED(phys_device, device, queue, getTimeDomains, getCalibratedTimestamps) \
68
TracyVkContextHostCalibrated(phys_device, device, queue, getTimeDomains, getCalibratedTimestamps)
69
#define TRACY_VK_ZONE_C(vk_context, cmd_buffer, name, color) TracyVkZoneC(vk_context, cmd_buffer, name, color)
70
#define TRACY_VK_ZONE_NAMED_C(vk_context, cmd_buffer, name, color, active) TracyVkNamedZoneC(vk_context, cmd_buffer, name, color, active)
71
#define TRACY_VK_ZONE_TRANSIENT(vk_context, cmd_buffer, name, active) TracyVkZoneTransient(vk_context, ___tracy_gpu_zone_pipeline, cmd_buffer, name, active)
72
#define TRACY_VK_CONTEXT_NAME(vk_context, name, size) TracyVkContextName(vk_context, name, size)
73
#define TRACY_VK_MULTIVIEW(vk_context, count) (vk_context)->SetMultiviewCount(count)
74
#endif
75
76
#else
77
#define TRACY_ZONE_SCOPED
78
#define TRACY_ZONE_SCOPED_NAMED(name)
79
#define TRACY_ZONE_SCOPED_NAMED_D(stream_expr)
80
#define TRACY_ZONE_SCOPED_FUNCTION
81
#define TRACY_FRAME_MARK
82
#define TRACY_MESSAGE_C(stream_expr, color)
83
#define TRACY_LOCKABLE(type, varname, desc) std::mutex varname
84
#define TRACY_LOCK_GUARD(type, varname, var) std::lock_guard<type> varname(var);
85
#define TRACY_VK_CONTEXT(phys_device, device, queue, cmd_buffer)
86
#define TRACY_VK_DESTROY_CONTEXT(vk_context)
87
#define TRACY_VK_ZONE(vk_context, cmd_buffer, name)
88
#define TRACY_VK_ZONE_NAMED(vk_context, cmd_buffer, name, active)
89
#define TRACY_VK_COLLECT(vk_context, cmd_buffer)
90
#define TRACY_VK_CONTEXT_CALIBRATED(phys_device, device, queue, cmd_buffer, getTimeDomains, getCalibratedTimestamps)
91
#define TRACY_VK_CONTEXT_HOST_CALIBRATED(phys_device, device, queue, cmd_buffer, getTimeDomains, getCalibratedTimestamps)
92
#define TRACY_VK_ZONE_C(vk_context, cmd_buffer, name, color)
93
#define TRACY_VK_ZONE_NAMED_C(vk_context, cmd_buffer, name, color, active)
94
#define TRACY_VK_ZONE_TRANSIENT(vk_context, cmd_buffer, name, active)
95
#define TRACY_VK_CONTEXT_NAME(vk_context, name, size)
96
#define TRACY_VK_MULTIVIEW(vk_context, count)
97
#define TRACY_ZONE_SCOPED_NAMED_ASSET(name)
98
#define TRACY_ZONE_SCOPED_NAMED_D_ASSET(stream_expr)
99
#define TRACY_ALLOC_N(ptr, size, name)
100
#define TRACY_FREE_N(ptr, name)
101
#endif
Engine
include
Engine
Logging
TracyMacros.hpp
Generated by
1.14.0