|
|
@@ -0,0 +1,98 @@
|
|
|
+//
|
|
|
+// File: vk_lunarg_debug_marker.h
|
|
|
+//
|
|
|
+/*
|
|
|
+ * Copyright (c) 2015-2016 The Khronos Group Inc.
|
|
|
+ * Copyright (c) 2015-2016 Valve Corporation
|
|
|
+ * Copyright (c) 2015-2016 LunarG, Inc.
|
|
|
+ *
|
|
|
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
+ * of this software and/or associated documentation files (the "Materials"), to
|
|
|
+ * deal in the Materials without restriction, including without limitation the
|
|
|
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
|
+ * sell copies of the Materials, and to permit persons to whom the Materials are
|
|
|
+ * furnished to do so, subject to the following conditions:
|
|
|
+ *
|
|
|
+ * The above copyright notice(s) and this permission notice shall be included in
|
|
|
+ * all copies or substantial portions of the Materials.
|
|
|
+ *
|
|
|
+ * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
|
+ *
|
|
|
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
|
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
|
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE
|
|
|
+ * USE OR OTHER DEALINGS IN THE MATERIALS.
|
|
|
+ *
|
|
|
+ * Authors:
|
|
|
+ * Jon Ashburn <[email protected]>
|
|
|
+ * Courtney Goeltzenleuchter <[email protected]>
|
|
|
+ */
|
|
|
+
|
|
|
+#ifndef __VK_DEBUG_MARKER_H__
|
|
|
+#define __VK_DEBUG_MARKER_H__
|
|
|
+
|
|
|
+#include "vulkan.h"
|
|
|
+
|
|
|
+#define VK_DEBUG_MARKER_EXTENSION_NUMBER 6
|
|
|
+#define VK_DEBUG_MARKER_EXTENSION_REVISION 1
|
|
|
+#ifdef __cplusplus
|
|
|
+extern "C" {
|
|
|
+#endif // __cplusplus
|
|
|
+
|
|
|
+/*
|
|
|
+***************************************************************************************************
|
|
|
+* DebugMarker Vulkan Extension API
|
|
|
+***************************************************************************************************
|
|
|
+*/
|
|
|
+
|
|
|
+#define DEBUG_MARKER_EXTENSION_NAME "VK_LUNARG_DEBUG_MARKER"
|
|
|
+
|
|
|
+// ------------------------------------------------------------------------------------------------
|
|
|
+// Enumerations
|
|
|
+
|
|
|
+#define VK_DEBUG_MARKER_ENUM_EXTEND(type, id) \
|
|
|
+ ((type)(VK_DEBUG_MARKER_EXTENSION_NUMBER * -1000 + (id)))
|
|
|
+
|
|
|
+#define VK_OBJECT_INFO_TYPE_DBG_OBJECT_TAG \
|
|
|
+ VK_DEBUG_MARKER_ENUM_EXTEND(VkDbgObjectInfoType, 0)
|
|
|
+#define VK_OBJECT_INFO_TYPE_DBG_OBJECT_NAME \
|
|
|
+ VK_DEBUG_MARKER_ENUM_EXTEND(VkDbgObjectInfoType, 1)
|
|
|
+
|
|
|
+// ------------------------------------------------------------------------------------------------
|
|
|
+// API functions
|
|
|
+
|
|
|
+typedef void(VKAPI_PTR *PFN_vkCmdDbgMarkerBegin)(VkCommandBuffer commandBuffer,
|
|
|
+ const char *pMarker);
|
|
|
+typedef void(VKAPI_PTR *PFN_vkCmdDbgMarkerEnd)(VkCommandBuffer commandBuffer);
|
|
|
+typedef VkResult(VKAPI_PTR *PFN_vkDbgSetObjectTag)(
|
|
|
+ VkDevice device, VkDebugReportObjectTypeEXT objType, uint64_t object,
|
|
|
+ size_t tagSize, const void *pTag);
|
|
|
+typedef VkResult(VKAPI_PTR *PFN_vkDbgSetObjectName)(
|
|
|
+ VkDevice device, VkDebugReportObjectTypeEXT objType, uint64_t object,
|
|
|
+ size_t nameSize, const char *pName);
|
|
|
+
|
|
|
+#ifndef VK_NO_PROTOTYPES
|
|
|
+
|
|
|
+// DebugMarker extension entrypoints
|
|
|
+VKAPI_ATTR void VKAPI_CALL
|
|
|
+vkCmdDbgMarkerBegin(VkCommandBuffer commandBuffer, const char *pMarker);
|
|
|
+
|
|
|
+VKAPI_ATTR void VKAPI_CALL vkCmdDbgMarkerEnd(VkCommandBuffer commandBuffer);
|
|
|
+
|
|
|
+VKAPI_ATTR VkResult VKAPI_CALL
|
|
|
+vkDbgSetObjectTag(VkDevice device, VkDebugReportObjectTypeEXT objType,
|
|
|
+ uint64_t object, size_t tagSize, const void *pTag);
|
|
|
+
|
|
|
+VKAPI_ATTR VkResult VKAPI_CALL
|
|
|
+vkDbgSetObjectName(VkDevice device, VkDebugReportObjectTypeEXT objType,
|
|
|
+ uint64_t object, size_t nameSize, const char *pName);
|
|
|
+
|
|
|
+#endif // VK_NO_PROTOTYPES
|
|
|
+
|
|
|
+#ifdef __cplusplus
|
|
|
+} // extern "C"
|
|
|
+#endif // __cplusplus
|
|
|
+
|
|
|
+#endif // __VK_DEBUG_MARKER_H__
|