Plasma Engine  2.0
Loading...
Searching...
No Matches
Profiling.h
1#pragma once
2
3#include <Foundation/Profiling/Profiling.h>
4#include <RendererFoundation/RendererFoundationDLL.h>
5
6struct GPUTimingScope;
7
9class PL_RENDERERFOUNDATION_DLL plProfilingScopeAndMarker : public plProfilingScope
10{
11public:
12 static GPUTimingScope* Start(plGALCommandEncoder* pCommandEncoder, const char* szName);
13 static void Stop(plGALCommandEncoder* pCommandEncoder, GPUTimingScope*& ref_pTimingScope);
14
15 plProfilingScopeAndMarker(plGALCommandEncoder* pCommandEncoder, const char* szName);
16
18
19protected:
20 plGALCommandEncoder* m_pCommandEncoder;
21 GPUTimingScope* m_pTimingScope;
22};
23
24#if PL_ENABLED(PL_USE_PROFILING) || defined(PL_DOCS)
25
27# define PL_PROFILE_AND_MARKER(GALContext, szName) plProfilingScopeAndMarker PL_PP_CONCAT(_plProfilingScope, PL_SOURCE_LINE)(GALContext, szName)
28
29#else
30
31# define PL_PROFILE_AND_MARKER(GALContext, szName) /*empty*/
32
33#endif
Definition CommandEncoder.h:11
Sets profiling marker and GPU timings for the current scope.
Definition Profiling.h:10
This class encapsulates a profiling scope.
Definition Profiling.h:17