HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RV_Tracing.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: RV_Tracing.h ( RV Library, C++)
7  *
8  * COMMENTS: Tracy Vulkan tracing macros.
9  */
10 
11 #ifndef __RV_Tracing__
12 #define __RV_Tracing__
13 
14 #include <UT/UT_Tracing.h>
15 
16 #ifdef TRACY_ENABLE
17 
18 #include "RV_VK.h"
19 #include <tracy/tracy/TracyVulkan.hpp>
20 
21 typedef tracy::VkCtx *rvTraceCtx;
22 
23 #define rvTraceContext(pd, d, q, cb) TracyVkContext(pd, d, q, cb)
24 #define rvTraceCalibratedContext(pd, d, q, cb, gctd, gct) TracyVkContextCalibrated(pd, d, q, cb, gctd, gct)
25 #define rvTraceContextName(c, name,size) TracyVkContextName(c,name,size)
26 #define rvTraceDestroy(c) TracyVkDestroy(c)
27 
28 #define rvTraceCollect(c, cb) if (utTraceFlag(VK_COMMANDS)) TracyVkCollect(c, cb)
29 
30 // Vulkan trace zones must be contained in a single command buffer scope,
31 // and cannot be used inside a multiview render pass
32 
33 // arguments: (c)ontext, (c)ommand (b)uffer, (l)abel, (f)lag
34 #define rvTraceZone(c,cb, l) TracyVkNamedZone(c, __tracy_gpu_zone, cb, l, utTraceFlag(VK_COMMANDS))
35 #define rvTraceZoneC(c, cb, l, col) TracyVkNamedZone(c, __tracy_gpu_zone, cb, l, col, utTraceFlag(VK_COMMANDS))
36 #define rvTraceZoneTransient(c, cb, l) TracyVkZoneTransient(c, __tracy_gpu_zone, cb, l, utTraceFlag(VK_COMMANDS))
37 
38 #define rvTraceZoneF(c,cb, l, f) TracyVkNamedZone(c, __tracy_gpu_zone, cb, l, !!(f) && utTraceFlag(VK_COMMANDS))
39 #define rvTraceZoneCF(c, cb, l, col, f) TracyVkNamedZone(c, __tracy_gpu_zone, cb, l, col, !!(f) && utTraceFlag(VK_COMMANDS))
40 #define rvTraceZoneTransientF(c, cb, l, f) TracyVkZoneTransient(c, __tracy_gpu_zone, cb, l, !!(f) && utTraceFlag(VK_COMMANDS))
41 
42 #ifdef TRACY_HAS_CALLSTACK
43 
44 #define rvTraceZoneS(c, cb, l, d) TracyVkNamedZoneS(c, __tracy_gpu_zone, cb, l, d, utTraceFlag(VK_COMMANDS))
45 #define rvTraceZoneCS(c, cb, l, col, d) TracyVkNamedZoneCS(c, __tracy_gpu_zone, cb, l, col, d, utTraceFlag(VK_COMMANDS))
46 #define rvTraceZoneTransientS(c, cb, l, d) TracyVkZoneTransientS(c, __tracy_gpu_zone, cb, l, d, utTraceFlag(VK_COMMANDS))
47 
48 #define rvTraceZoneSF(c, cb, l, d, f) TracyVkNamedZoneS(c, __tracy_gpu_zone, cb, l, d, !!(f) && utTraceFlag(VK_COMMANDS))
49 #define rvTraceZoneCSF(c, cb, l, col, d, f) TracyVkNamedZoneCS(c, __tracy_gpu_zone, cb, l, col, d, !!(f) && utTraceFlag(VK_COMMANDS))
50 #define rvTraceZoneTransientSF(c, cb, l, d, f) TracyVkZoneTransientS(c, __tracy_gpu_zone, cb, l, d, !!(f) && utTraceFlag(VK_COMMANDS))
51 
52 #else
53 
54 #define rvTraceZoneS(c, cb, l, d) rvTraceZoneKernel(c, cb, l)
55 #define rvTraceZoneCS(c, cb, l, col, d) rvTraceZoneKernelC(c, cb, l, col)
56 #define rvTraceZoneTransientS(c, cb, l, d) rvTraceZoneTransient(c, cb, l)
57 
58 #define rvTraceZoneSF(c, cb, l, d, f) rvTraceZoneKernelF(c, cb, l, f)
59 #define rvTraceZoneCSF(c, cb, l, col, d, f) rvTraceZoneKernelCF(c, cb, l, col, f)
60 #define rvTraceZoneTransientSF(c, cb, l, d, f) rvTraceZoneTransientF(c, cb, l, f)
61 #endif
62 
63 #else
64 
65 typedef void *rvTraceCtx;
66 
67 #define rvTraceContext(pd, d, q, cb) nullptr
68 #define rvTraceContextName(c, name,size)
69 #define rvTraceDestroy(c)
70 
71 #define rvTraceCollect(c, cb)
72 
73 #define rvTraceZone(c,cb, l)
74 #define rvTraceZoneC(c, cb, l, col)
75 #define rvTraceZoneTransient(c, cb, l)
76 
77 #define rvTraceZoneF(c,cb, l, f)
78 #define rvTraceZoneCF(c, cb, l, col, f)
79 #define rvTraceZoneTransientF(c, cb, l, f)
80 
81 #define rvTraceZoneS(c, cb, l, d)
82 #define rvTraceZoneCS(c, cb, l, col, d)
83 #define rvTraceZoneTransientS(c, cb, l, d)
84 
85 #define rvTraceZoneSF(c, cb, l, d, f)
86 #define rvTraceZoneCSF(c, cb, l, col, d, f)
87 #define rvTraceZoneTransientSF(c, cb, l, d, f)
88 #endif
89 
90 
91 #endif
void * rvTraceCtx
Definition: RV_Tracing.h:65