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
#ifdef USE_VULKAN
48
#define TRACY_VK_CONTEXT(phys_device, device, queue, cmd_buffer) tracy::CreateVkContext(phys_device, device, queue, cmd_buffer)
49
#define TRACY_VK_DESTROY_CONTEXT(vk_context) tracy::DestroyVulkan(vk_context)
50
#define TRACY_VK_ZONE(vk_context, cmd_buffer, name) TracyVkZone(vk_context, cmd_buffer, name)
51
#define TRACY_VK_ZONE_NAMED(vk_context, cmd_buffer, name, active) TracyVkNamedZone(vk_context, cmd_buffer, name, active)
52
#define TRACY_VK_COLLECT(vk_context, cmd_buffer) TracyVkCollect(vk_context, cmd_buffer)
53
#define TRACY_VK_CONTEXT_CALIBRATED(phys_device, device, queue, getTimeDomains, getCalibratedTimestamps) \
54
TracyVkContextCalibrated(phys_device, device, queue, getTimeDomains, getCalibratedTimestamps)
55
#define TRACY_VK_CONTEXT_HOST_CALIBRATED(phys_device, device, queue, getTimeDomains, getCalibratedTimestamps) \
56
TracyVkContextHostCalibrated(phys_device, device, queue, getTimeDomains, getCalibratedTimestamps)
57
#define TRACY_VK_ZONE_C(vk_context, cmd_buffer, name, color) TracyVkZoneC(vk_context, cmd_buffer, name, color)
58
#define TRACY_VK_ZONE_NAMED_C(vk_context, cmd_buffer, name, color, active) TracyVkNamedZoneC(vk_context, cmd_buffer, name, color, active)
59
#define TRACY_VK_ZONE_TRANSIENT(vk_context, cmd_buffer, name, active) TracyVkZoneTransient(vk_context, ___tracy_gpu_zone_pipeline, cmd_buffer, name, active)
60
#define TRACY_VK_CONTEXT_NAME(vk_context, name, size) TracyVkContextName(vk_context, name, size)
61
#endif
62
63
#else
64
#define TRACY_ZONE_SCOPED
65
#define TRACY_ZONE_SCOPED_NAMED(name)
66
#define TRACY_ZONE_SCOPED_NAMED_D(stream_expr)
67
#define TRACY_ZONE_SCOPED_FUNCTION
68
#define TRACY_FRAME_MARK
69
#define TRACY_LOCKABLE(type, varname, desc) std::mutex varname
70
#define TRACY_LOCK_GUARD(type, varname, var) std::lock_guard<type> varname(var);
71
#define TRACY_VK_CONTEXT(phys_device, device, queue, cmd_buffer)
72
#define TRACY_VK_DESTROY_CONTEXT(vk_context)
73
#define TRACY_VK_ZONE(vk_context, cmd_buffer, name)
74
#define TRACY_VK_ZONE_NAMED(vk_context, cmd_buffer, name, active)
75
#define TRACY_VK_COLLECT(vk_context, cmd_buffer)
76
#define TRACY_VK_CONTEXT_CALIBRATED(phys_device, device, queue, getTimeDomains, getCalibratedTimestamps)
77
#define TRACY_VK_CONTEXT_HOST_CALIBRATED(phys_device, device, queue, getTimeDomains, getCalibratedTimestamps)
78
#define TRACY_VK_ZONE_C(vk_context, cmd_buffer, name, color)
79
#define TRACY_VK_ZONE_NAMED_C(vk_context, cmd_buffer, name, color, active)
80
#define TRACY_VK_ZONE_TRANSIENT(vk_context, cmd_buffer, name, active)
81
#define TRACY_VK_CONTEXT_NAME(vk_context, name, size)
82
#define TRACY_ZONE_SCOPED_NAMED_ASSET(name)
83
#define TRACY_ZONE_SCOPED_NAMED_D_ASSET(stream_expr)
84
#endif
Engine
include
Engine
Logging
TracyMacros.hpp
Generated by
1.14.0