aboutsummaryrefslogtreecommitdiff
path: root/src/PerfMarkers.h
diff options
context:
space:
mode:
authorlbavoil <[email protected]>2016-03-25 13:01:54 +0100
committerlbavoil <[email protected]>2016-03-25 13:01:54 +0100
commit99174e4e5fb4b7079da80b35a6dfd68f3fd56a1c (patch)
treefbcd4260d6c953d569a887505336a1c3f202e10f /src/PerfMarkers.h
downloadhbaoplus-99174e4e5fb4b7079da80b35a6dfd68f3fd56a1c.tar.xz
hbaoplus-99174e4e5fb4b7079da80b35a6dfd68f3fd56a1c.zip
GFSDK_HBAO+_distro_r3.0_cl20573789
Diffstat (limited to 'src/PerfMarkers.h')
-rw-r--r--src/PerfMarkers.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/PerfMarkers.h b/src/PerfMarkers.h
new file mode 100644
index 0000000..2d129da
--- /dev/null
+++ b/src/PerfMarkers.h
@@ -0,0 +1,88 @@
+/*
+* Copyright (c) 2008-2016, NVIDIA CORPORATION. All rights reserved.
+*
+* NVIDIA CORPORATION and its licensors retain all intellectual property
+* and proprietary rights in and to this software, related documentation
+* and any modifications thereto. Any use, reproduction, disclosure or
+* distribution of this software and related documentation without an express
+* license agreement from NVIDIA CORPORATION is strictly prohibited.
+*/
+
+#if ENABLE_PERF_MARKERS
+
+#pragma once
+
+#if SUPPORT_D3D11
+#include <d3d9.h>
+#pragma comment(lib, "d3d9.lib")
+#endif
+
+#if SUPPORT_D3D12
+#include <d3d12.h>
+#include <pix_win.h>
+#endif
+
+namespace GFSDK
+{
+namespace SSAO
+{
+
+//--------------------------------------------------------------------------------
+#if SUPPORT_D3D11
+namespace D3D11
+{
+
+struct PerfMarkerScope
+{
+ PerfMarkerScope(const WCHAR* EventName)
+ {
+ D3DPERF_BeginEvent(0xff808080, EventName);
+ }
+ ~PerfMarkerScope()
+ {
+ D3DPERF_EndEvent();
+ }
+};
+
+#define PERF_MARKER_SCOPE(NAME) PerfMarkerScope PerfMarker(NAME)
+
+} // namespace D3D11
+#endif //SUPPORT_D3D11
+
+//--------------------------------------------------------------------------------
+#if SUPPORT_D3D12
+namespace D3D12
+{
+
+struct PerfMarkerScope
+{
+ PerfMarkerScope()
+ : m_pCmdList(NULL)
+ {
+ }
+ PerfMarkerScope(ID3D12GraphicsCommandList* pCmdList, const WCHAR* EventName)
+ {
+ PIXBeginEvent(pCmdList, 0, EventName);
+
+ m_pCmdList = pCmdList;
+ }
+ ~PerfMarkerScope()
+ {
+ PIXEndEvent(m_pCmdList);
+
+ m_pCmdList = NULL;
+ }
+
+private:
+ ID3D12GraphicsCommandList* m_pCmdList;
+};
+
+#define PERF_MARKER_SCOPE(NAME) PerfMarkerScope PerfMarker(m_GraphicsContext.pCmdList, NAME)
+
+} // namespace D3D12
+#endif //SUPPORT_D3D12
+
+} // namespace SSAO
+} // namespace GFSDK
+
+#endif //ENABLE_PERF_MARKERS