From 6b15538f574d03ebf2a26afed7cf712173e10692 Mon Sep 17 00:00:00 2001 From: Jon Ashburn Date: Mon, 25 May 2015 14:11:37 -0600 Subject: misc: Make DEBUG_MARKER entrypoints a device extension with separate dispatch Right now only DrawState and ParamChecker implement this extension. --- include/vkDbg.h | 141 ---------------------------------------- include/vkLayer.h | 4 -- include/vk_debug_marker_layer.h | 46 +++++++++++++ 3 files changed, 46 insertions(+), 145 deletions(-) delete mode 100644 include/vkDbg.h create mode 100644 include/vk_debug_marker_layer.h (limited to 'include') 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 - -#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 +** Courtney Goeltzenleuchter +*/ + +#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; -- cgit v1.2.3