aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJon Ashburn <jon@lunarg.com>2015-05-25 14:11:37 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-06-17 20:56:35 -0600
commit6b15538f574d03ebf2a26afed7cf712173e10692 (patch)
tree023df273f92bc2e373452fe6a616f734184f5c68 /include
parentae2e4849994cd636a0321de617b7743b2b9b429b (diff)
downloadusermoji-6b15538f574d03ebf2a26afed7cf712173e10692.tar.xz
misc: Make DEBUG_MARKER entrypoints a device extension with separate dispatch
Right now only DrawState and ParamChecker implement this extension.
Diffstat (limited to 'include')
-rw-r--r--include/vkDbg.h141
-rw-r--r--include/vkLayer.h4
-rw-r--r--include/vk_debug_marker_layer.h46
3 files changed, 46 insertions, 145 deletions
diff --git a/include/vkDbg.h b/include/vkDbg.h
deleted file mode 100644
index 9e5fb6ec..00000000
--- a/include/vkDbg.h
+++ /dev/null
@@ -1,141 +0,0 @@
-#ifndef __VKDBG_H__
-#define __VKDBG_H__
-
-#include <vulkan.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif // __cplusplus
-
-typedef enum VkValidationLevel_
-{
- VK_VALIDATION_LEVEL_0 = 0x00000000,
- VK_VALIDATION_LEVEL_1 = 0x00000001,
- VK_VALIDATION_LEVEL_2 = 0x00000002,
- VK_VALIDATION_LEVEL_3 = 0x00000003,
- VK_VALIDATION_LEVEL_4 = 0x00000004,
-
- VK_VALIDATION_LEVEL_BEGIN_RANGE = VK_VALIDATION_LEVEL_0,
- VK_VALIDATION_LEVEL_END_RANGE = VK_VALIDATION_LEVEL_4,
- VK_NUM_VALIDATION_LEVEL = (VK_VALIDATION_LEVEL_END_RANGE - VK_VALIDATION_LEVEL_BEGIN_RANGE + 1),
-
- VK_MAX_ENUM(VkValidationLevel)
-} VkValidationLevel;
-
-typedef enum _VK_DBG_MSG_TYPE
-{
- VK_DBG_REPORT_INFO_BIT = 0x0,
- VK_DBG_REPORT_ERROR_BIT = 0x1,
- VK_DBG_MSG_WARNING = 0x2,
- VK_DBG_MSG_PERF_WARNING = 0x3,
-
- VK_DBG_MSG_TYPE_BEGIN_RANGE = VK_DBG_REPORT_INFO_BIT,
- VK_DBG_MSG_TYPE_END_RANGE = VK_DBG_MSG_PERF_WARNING,
- VK_NUM_DBG_MSG_TYPE = (VK_DBG_MSG_TYPE_END_RANGE - VK_DBG_MSG_TYPE_BEGIN_RANGE + 1),
-} VK_DBG_MSG_TYPE;
-
-typedef enum _VK_DBG_MSG_FILTER
-{
- VK_DBG_MSG_FILTER_NONE = 0x0,
- VK_DBG_MSG_FILTER_REPEATED = 0x1,
- VK_DBG_MSG_FILTER_ALL = 0x2,
-
- VK_DBG_MSG_FILTER_BEGIN_RANGE = VK_DBG_MSG_FILTER_NONE,
- VK_DBG_MSG_FILTER_END_RANGE = VK_DBG_MSG_FILTER_ALL,
- VK_NUM_DBG_MSG_FILTER = (VK_DBG_MSG_FILTER_END_RANGE - VK_DBG_MSG_FILTER_BEGIN_RANGE + 1),
-} VK_DBG_MSG_FILTER;
-
-typedef enum _VK_DBG_GLOBAL_OPTION
-{
- VK_DBG_OPTION_DEBUG_ECHO_ENABLE = 0x0,
- VK_DBG_OPTION_BREAK_ON_ERROR = 0x1,
- VK_DBG_OPTION_BREAK_ON_WARNING = 0x2,
-
- VK_DBG_GLOBAL_OPTION_BEGIN_RANGE = VK_DBG_OPTION_DEBUG_ECHO_ENABLE,
- VK_DBG_GLOBAL_OPTION_END_RANGE = VK_DBG_OPTION_BREAK_ON_WARNING,
- VK_NUM_DBG_GLOBAL_OPTION = (VK_DBG_GLOBAL_OPTION_END_RANGE - VK_DBG_GLOBAL_OPTION_BEGIN_RANGE + 1),
-} VK_DBG_GLOBAL_OPTION;
-
-typedef enum _VK_DBG_DEVICE_OPTION
-{
- VK_DBG_OPTION_DISABLE_PIPELINE_LOADS = 0x0,
- VK_DBG_OPTION_FORCE_OBJECT_MEMORY_REQS = 0x1,
- VK_DBG_OPTION_FORCE_LARGE_IMAGE_ALIGNMENT = 0x2,
-
- VK_DBG_DEVICE_OPTION_BEGIN_RANGE = VK_DBG_OPTION_DISABLE_PIPELINE_LOADS,
- VK_DBG_DEVICE_OPTION_END_RANGE = VK_DBG_OPTION_FORCE_LARGE_IMAGE_ALIGNMENT,
- VK_NUM_DBG_DEVICE_OPTION = (VK_DBG_DEVICE_OPTION_END_RANGE - VK_DBG_DEVICE_OPTION_BEGIN_RANGE + 1),
-} VK_DBG_DEVICE_OPTION;
-
-typedef void (VKAPI *VK_DBG_MSG_CALLBACK_FUNCTION)(
- VK_DBG_MSG_TYPE msgType,
- VkValidationLevel validationLevel,
- VkObject srcObject,
- size_t location,
- int32_t msgCode,
- const char* pMsg,
- void* pUserData);
-
-// Debug functions
-typedef VkResult (VKAPI *PFN_vkDbgSetValidationLevel)(VkDevice device, VkValidationLevel validationLevel);
-typedef VkResult (VKAPI *PFN_vkDbgRegisterMsgCallback)(VkInstance instance, VK_DBG_MSG_CALLBACK_FUNCTION pfnMsgCallback, void* pUserData);
-typedef VkResult (VKAPI *PFN_vkDbgUnregisterMsgCallback)(VkInstance instance, VK_DBG_MSG_CALLBACK_FUNCTION pfnMsgCallback);
-typedef VkResult (VKAPI *PFN_vkDbgSetMessageFilter)(VkDevice device, int32_t msgCode, VK_DBG_MSG_FILTER filter);
-typedef VkResult (VKAPI *PFN_vkDbgSetObjectTag)(VkDevice device, VkObject object, size_t tagSize, const void* pTag);
-typedef VkResult (VKAPI *PFN_vkDbgSetGlobalOption)(VkInstance instance, VK_DBG_GLOBAL_OPTION dbgOption, size_t dataSize, const void* pData);
-typedef VkResult (VKAPI *PFN_vkDbgSetDeviceOption)(VkDevice device, VK_DBG_DEVICE_OPTION dbgOption, size_t dataSize, const void* pData);
-typedef void (VKAPI *PFN_vkCmdDbgMarkerBegin)(VkCmdBuffer cmdBuffer, const char* pMarker);
-typedef void (VKAPI *PFN_vkCmdDbgMarkerEnd)(VkCmdBuffer cmdBuffer);
-
-#ifdef VK_PROTOTYPES
-VkResult VKAPI vkDbgSetValidationLevel(
- VkDevice device,
- VkValidationLevel validationLevel);
-
-VkResult VKAPI vkDbgRegisterMsgCallback(
- VkInstance instance,
- VK_DBG_MSG_CALLBACK_FUNCTION pfnMsgCallback,
- void* pUserData);
-
-VkResult VKAPI vkDbgUnregisterMsgCallback(
- VkInstance instance,
- VK_DBG_MSG_CALLBACK_FUNCTION pfnMsgCallback);
-
-VkResult VKAPI vkDbgSetMessageFilter(
- VkDevice device,
- int32_t msgCode,
- VK_DBG_MSG_FILTER filter);
-
-VkResult VKAPI vkDbgSetObjectTag(
- VkDevice device,
- VkObject object,
- size_t tagSize,
- const void* pTag);
-
-VkResult VKAPI vkDbgSetGlobalOption(
- VkInstance instance,
- VK_DBG_GLOBAL_OPTION dbgOption,
- size_t dataSize,
- const void* pData);
-
-VkResult VKAPI vkDbgSetDeviceOption(
- VkDevice device,
- VK_DBG_DEVICE_OPTION dbgOption,
- size_t dataSize,
- const void* pData);
-
-void VKAPI vkCmdDbgMarkerBegin(
- VkCmdBuffer cmdBuffer,
- const char* pMarker);
-
-void VKAPI vkCmdDbgMarkerEnd(
- VkCmdBuffer cmdBuffer);
-
-#endif // VK_PROTOTYPES
-
-#ifdef __cplusplus
-}; // extern "C"
-#endif // __cplusplus
-
-#endif // __VKDBG_H__
diff --git a/include/vkLayer.h b/include/vkLayer.h
index 883cca13..468d4355 100644
--- a/include/vkLayer.h
+++ b/include/vkLayer.h
@@ -132,9 +132,6 @@ typedef struct VkLayerDispatchTable_
PFN_vkCreateRenderPass CreateRenderPass;
PFN_vkCmdBeginRenderPass CmdBeginRenderPass;
PFN_vkCmdEndRenderPass CmdEndRenderPass;
- PFN_vkDbgSetObjectTag DbgSetObjectTag;
- PFN_vkCmdDbgMarkerBegin CmdDbgMarkerBegin;
- PFN_vkCmdDbgMarkerEnd CmdDbgMarkerEnd;
PFN_vkCreateSwapChainWSI CreateSwapChainWSI;
PFN_vkDestroySwapChainWSI DestroySwapChainWSI;
PFN_vkGetSwapChainInfoWSI GetSwapChainInfoWSI;
@@ -144,7 +141,6 @@ typedef struct VkLayerDispatchTable_
PFN_vkDbgStringCallback DbgStringCallback;
PFN_vkDbgStdioCallback DbgStdioCallback;
PFN_vkDbgBreakCallback DbgBreakCallback;
- PFN_vkDbgSetObjectName DbgSetObjectName;
} VkLayerDispatchTable;
typedef struct VkLayerInstanceDispatchTable_
diff --git a/include/vk_debug_marker_layer.h b/include/vk_debug_marker_layer.h
new file mode 100644
index 00000000..7c4ebc93
--- /dev/null
+++ b/include/vk_debug_marker_layer.h
@@ -0,0 +1,46 @@
+//
+// File: vk_debug_marker_lunarg.h
+//
+/*
+** Copyright (c) 2015 The Khronos Group 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 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 <jon@lunarg.com>
+** Courtney Goeltzenleuchter <courtney@lunarg.com>
+*/
+
+#pragma once
+
+#include "vulkan.h"
+#include "vk_debug_marker_lunarg.h"
+#include "vkLayer.h"
+
+
+typedef struct VkLayerDebugMarkerDispatchTable_
+{
+
+ PFN_vkCmdDbgMarkerBegin CmdDbgMarkerBegin;
+ PFN_vkCmdDbgMarkerEnd CmdDbgMarkerEnd;
+ PFN_vkDbgSetObjectTag DbgSetObjectTag;
+ PFN_vkDbgSetObjectName DbgSetObjectName;
+ bool ext_enabled;
+} VkLayerDebugMarkerDispatchTable;