From 541526f8270c3ec38d5f38509095d9b170a13831 Mon Sep 17 00:00:00 2001 From: David Pinedo Date: Tue, 24 Nov 2015 09:00:24 -0700 Subject: Layers: changed layer names to conform to spec --- include/vulkan/vk_debug_marker_layer.h | 4 +- include/vulkan/vk_debug_marker_lunarg.h | 98 ----------------- include/vulkan/vk_debug_report_lunarg.h | 182 -------------------------------- include/vulkan/vk_layer.h | 4 +- include/vulkan/vk_lunarg_debug_marker.h | 98 +++++++++++++++++ include/vulkan/vk_lunarg_debug_report.h | 182 ++++++++++++++++++++++++++++++++ 6 files changed, 284 insertions(+), 284 deletions(-) delete mode 100644 include/vulkan/vk_debug_marker_lunarg.h delete mode 100644 include/vulkan/vk_debug_report_lunarg.h create mode 100644 include/vulkan/vk_lunarg_debug_marker.h create mode 100644 include/vulkan/vk_lunarg_debug_report.h (limited to 'include') diff --git a/include/vulkan/vk_debug_marker_layer.h b/include/vulkan/vk_debug_marker_layer.h index 0eede38a..b2afbdff 100644 --- a/include/vulkan/vk_debug_marker_layer.h +++ b/include/vulkan/vk_debug_marker_layer.h @@ -1,5 +1,5 @@ // -// File: vk_debug_marker_lunarg.h +// File: vk_debug_marker_layer.h // /* ** Copyright (c) 2015 The Khronos Group Inc. @@ -31,7 +31,7 @@ #pragma once #include "vulkan/vulkan.h" -#include "vk_debug_marker_lunarg.h" +#include "vulkan/vk_lunarg_debug_marker.h" #include "vk_layer.h" diff --git a/include/vulkan/vk_debug_marker_lunarg.h b/include/vulkan/vk_debug_marker_lunarg.h deleted file mode 100644 index 1fca28aa..00000000 --- a/include/vulkan/vk_debug_marker_lunarg.h +++ /dev/null @@ -1,98 +0,0 @@ -// -// 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 -*/ - -#ifndef __VK_DEBUG_MARKER_H__ -#define __VK_DEBUG_MARKER_H__ - -#include "vulkan/vulkan.h" -#include "vulkan/vk_debug_report_lunarg.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 "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, VkDbgObjectType objType, uint64_t object, size_t tagSize, const void* pTag); -typedef VkResult (VKAPI_PTR *PFN_vkDbgSetObjectName)(VkDevice device, VkDbgObjectType objType, uint64_t object, size_t nameSize, const char* pName); - -#ifdef VK_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, - VkDbgObjectType objType, - uint64_t object, - size_t tagSize, - const void* pTag); - -VKAPI_ATTR VkResult VKAPI_CALL vkDbgSetObjectName( - VkDevice device, - VkDbgObjectType objType, - uint64_t object, - size_t nameSize, - const char* pName); - -#endif // VK_PROTOTYPES - -#ifdef __cplusplus -} // extern "C" -#endif // __cplusplus - -#endif // __VK_DEBUG_MARKER_H__ diff --git a/include/vulkan/vk_debug_report_lunarg.h b/include/vulkan/vk_debug_report_lunarg.h deleted file mode 100644 index c952fc97..00000000 --- a/include/vulkan/vk_debug_report_lunarg.h +++ /dev/null @@ -1,182 +0,0 @@ -// -// File: vk_debug_report_lunarg.h -// -/* - * - * Copyright (C) 2015 Valve Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is 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 Software. - * - * THE SOFTWARE IS 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 SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Cody Northrop - * Author: Courtney Goeltzenleuchter - * Author: Tony Barbour - * - */ - -#ifndef __VK_DEBUG_REPORT_LUNARG_H__ -#define __VK_DEBUG_REPORT_LUNARG_H__ - -#include "vulkan/vulkan.h" - -#define VK_DEBUG_REPORT_EXTENSION_NUMBER 5 -#define VK_DEBUG_REPORT_EXTENSION_REVISION 1 -#ifdef __cplusplus -extern "C" -{ -#endif // __cplusplus - -/* -*************************************************************************************************** -* DebugReport Vulkan Extension API -*************************************************************************************************** -*/ -typedef enum { - VK_OBJECT_TYPE_INSTANCE = 0, - VK_OBJECT_TYPE_PHYSICAL_DEVICE = 1, - VK_OBJECT_TYPE_DEVICE = 2, - VK_OBJECT_TYPE_QUEUE = 3, - VK_OBJECT_TYPE_COMMAND_BUFFER = 4, - VK_OBJECT_TYPE_DEVICE_MEMORY = 5, - VK_OBJECT_TYPE_BUFFER = 6, - VK_OBJECT_TYPE_BUFFER_VIEW = 7, - VK_OBJECT_TYPE_IMAGE = 8, - VK_OBJECT_TYPE_IMAGE_VIEW = 9, - VK_OBJECT_TYPE_ATTACHMENT_VIEW = 10, - VK_OBJECT_TYPE_SHADER_MODULE = 12, - VK_OBJECT_TYPE_SHADER = 13, - VK_OBJECT_TYPE_PIPELINE = 14, - VK_OBJECT_TYPE_PIPELINE_LAYOUT = 15, - VK_OBJECT_TYPE_SAMPLER = 16, - VK_OBJECT_TYPE_DESCRIPTOR_SET = 17, - VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 18, - VK_OBJECT_TYPE_DESCRIPTOR_POOL = 19, - VK_OBJECT_TYPE_FENCE = 20, - VK_OBJECT_TYPE_SEMAPHORE = 21, - VK_OBJECT_TYPE_EVENT = 22, - VK_OBJECT_TYPE_QUERY_POOL = 23, - VK_OBJECT_TYPE_FRAMEBUFFER = 24, - VK_OBJECT_TYPE_RENDER_PASS = 25, - VK_OBJECT_TYPE_PIPELINE_CACHE = 26, - VK_OBJECT_TYPE_SWAPCHAIN_KHR = 27, - VK_OBJECT_TYPE_COMMAND_POOL = 28, - VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_INSTANCE, - VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL, - VK_OBJECT_TYPE_NUM = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_INSTANCE + 1), - VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkDbgObjectType; - -#define VK_DEBUG_REPORT_EXTENSION_NAME "DEBUG_REPORT" - -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDbgMsgCallback) - -// ------------------------------------------------------------------------------------------------ -// Enumerations - -typedef enum VkDbgReportFlags_ -{ - VK_DBG_REPORT_INFO_BIT = 0x0001, - VK_DBG_REPORT_WARN_BIT = 0x0002, - VK_DBG_REPORT_PERF_WARN_BIT = 0x0004, - VK_DBG_REPORT_ERROR_BIT = 0x0008, - VK_DBG_REPORT_DEBUG_BIT = 0x0010, -} VkDbgReportFlags; - -// Debug Report ERROR codes -typedef enum _DEBUG_REPORT_ERROR -{ - DEBUG_REPORT_NONE, // Used for INFO & other non-error messages - DEBUG_REPORT_CALLBACK_REF, // Callbacks were not destroyed prior to calling DestroyInstance -} DEBUG_REPORT_ERROR; - -#define VK_DEBUG_REPORT_ENUM_EXTEND(type, id) ((type)(VK_DEBUG_REPORT_EXTENSION_NUMBER * -1000 + (id))) - -#define VK_OBJECT_TYPE_MSG_CALLBACK VK_DEBUG_REPORT_ENUM_EXTEND(VkDbgObjectType, 0) -#define VK_ERROR_VALIDATION_FAILED VK_DEBUG_REPORT_ENUM_EXTEND(VkResult, 0) - -// ------------------------------------------------------------------------------------------------ -// Vulkan function pointers - -typedef VkBool32 (*PFN_vkDbgMsgCallback)( - VkFlags msgFlags, - VkDbgObjectType objType, - uint64_t srcObject, - size_t location, - int32_t msgCode, - const char* pLayerPrefix, - const char* pMsg, - void* pUserData); - -// ------------------------------------------------------------------------------------------------ -// API functions - -typedef VkResult (VKAPI_PTR *PFN_vkDbgCreateMsgCallback)(VkInstance instance, VkFlags msgFlags, const PFN_vkDbgMsgCallback pfnMsgCallback, void* pUserData, VkDbgMsgCallback* pMsgCallback); -typedef VkResult (VKAPI_PTR *PFN_vkDbgDestroyMsgCallback)(VkInstance instance, VkDbgMsgCallback msgCallback); - -#ifdef VK_PROTOTYPES - -// DebugReport extension entrypoints -VKAPI_ATTR VkResult VKAPI_CALL vkDbgCreateMsgCallback( - VkInstance instance, - VkFlags msgFlags, - const PFN_vkDbgMsgCallback pfnMsgCallback, - void* pUserData, - VkDbgMsgCallback* pMsgCallback); - -VKAPI_ATTR VkResult VKAPI_CALL vkDbgDestroyMsgCallback( - VkInstance instance, - VkDbgMsgCallback msgCallback); - -// DebugReport utility callback functions -VKAPI_ATTR void VKAPI_CALL vkDbgStringCallback( - VkFlags msgFlags, - VkDbgObjectType objType, - uint64_t srcObject, - size_t location, - int32_t msgCode, - const char* pLayerPrefix, - const char* pMsg, - void* pUserData); - -VKAPI_ATTR void VKAPI_CALL vkDbgStdioCallback( - VkFlags msgFlags, - VkDbgObjectType objType, - uint64_t srcObject, - size_t location, - int32_t msgCode, - const char* pLayerPrefix, - const char* pMsg, - void* pUserData); - -VKAPI_ATTR void VKAPI_CALL vkDbgBreakCallback( - VkFlags msgFlags, - VkDbgObjectType objType, - uint64_t srcObject, - size_t location, - int32_t msgCode, - const char* pLayerPrefix, - const char* pMsg, - void* pUserData); - -#endif // VK_PROTOTYPES - -#ifdef __cplusplus -} // extern "C" -#endif // __cplusplus - -#endif // __VK_DEBUG_REPORT_LUNARG_H__ diff --git a/include/vulkan/vk_layer.h b/include/vulkan/vk_layer.h index 60d30af0..ea137152 100644 --- a/include/vulkan/vk_layer.h +++ b/include/vulkan/vk_layer.h @@ -5,8 +5,8 @@ #pragma once #include "vulkan/vulkan.h" -#include "vulkan/vk_debug_report_lunarg.h" -#include "vk_debug_marker_lunarg.h" +#include "vulkan/vk_lunarg_debug_report.h" +#include "vulkan/vk_lunarg_debug_marker.h" #include "vulkan/vk_ext_khr_swapchain.h" #include "vulkan/vk_ext_khr_device_swapchain.h" #if defined(__GNUC__) && __GNUC__ >= 4 diff --git a/include/vulkan/vk_lunarg_debug_marker.h b/include/vulkan/vk_lunarg_debug_marker.h new file mode 100644 index 00000000..3887bbf0 --- /dev/null +++ b/include/vulkan/vk_lunarg_debug_marker.h @@ -0,0 +1,98 @@ +// +// File: vk_lunarg_debug_marker.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 +*/ + +#ifndef __VK_DEBUG_MARKER_H__ +#define __VK_DEBUG_MARKER_H__ + +#include "vulkan/vulkan.h" +#include "vulkan/vk_lunarg_debug_report.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 "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, VkDbgObjectType objType, uint64_t object, size_t tagSize, const void* pTag); +typedef VkResult (VKAPI_PTR *PFN_vkDbgSetObjectName)(VkDevice device, VkDbgObjectType objType, uint64_t object, size_t nameSize, const char* pName); + +#ifdef VK_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, + VkDbgObjectType objType, + uint64_t object, + size_t tagSize, + const void* pTag); + +VKAPI_ATTR VkResult VKAPI_CALL vkDbgSetObjectName( + VkDevice device, + VkDbgObjectType objType, + uint64_t object, + size_t nameSize, + const char* pName); + +#endif // VK_PROTOTYPES + +#ifdef __cplusplus +} // extern "C" +#endif // __cplusplus + +#endif // __VK_DEBUG_MARKER_H__ diff --git a/include/vulkan/vk_lunarg_debug_report.h b/include/vulkan/vk_lunarg_debug_report.h new file mode 100644 index 00000000..e2ab52a9 --- /dev/null +++ b/include/vulkan/vk_lunarg_debug_report.h @@ -0,0 +1,182 @@ +// +// File: vk_lunarg_debug_report.h +// +/* + * + * Copyright (C) 2015 Valve Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is 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 Software. + * + * THE SOFTWARE IS 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 SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Cody Northrop + * Author: Courtney Goeltzenleuchter + * Author: Tony Barbour + * + */ + +#ifndef __VK_LUNARG_DEBUG_REPORT_H__ +#define __VK_LUNARG_DEBUG_REPORT_H__ + +#include "vulkan/vulkan.h" + +#define VK_DEBUG_REPORT_EXTENSION_NUMBER 5 +#define VK_DEBUG_REPORT_EXTENSION_REVISION 1 +#ifdef __cplusplus +extern "C" +{ +#endif // __cplusplus + +/* +*************************************************************************************************** +* DebugReport Vulkan Extension API +*************************************************************************************************** +*/ +typedef enum { + VK_OBJECT_TYPE_INSTANCE = 0, + VK_OBJECT_TYPE_PHYSICAL_DEVICE = 1, + VK_OBJECT_TYPE_DEVICE = 2, + VK_OBJECT_TYPE_QUEUE = 3, + VK_OBJECT_TYPE_COMMAND_BUFFER = 4, + VK_OBJECT_TYPE_DEVICE_MEMORY = 5, + VK_OBJECT_TYPE_BUFFER = 6, + VK_OBJECT_TYPE_BUFFER_VIEW = 7, + VK_OBJECT_TYPE_IMAGE = 8, + VK_OBJECT_TYPE_IMAGE_VIEW = 9, + VK_OBJECT_TYPE_ATTACHMENT_VIEW = 10, + VK_OBJECT_TYPE_SHADER_MODULE = 12, + VK_OBJECT_TYPE_SHADER = 13, + VK_OBJECT_TYPE_PIPELINE = 14, + VK_OBJECT_TYPE_PIPELINE_LAYOUT = 15, + VK_OBJECT_TYPE_SAMPLER = 16, + VK_OBJECT_TYPE_DESCRIPTOR_SET = 17, + VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 18, + VK_OBJECT_TYPE_DESCRIPTOR_POOL = 19, + VK_OBJECT_TYPE_FENCE = 20, + VK_OBJECT_TYPE_SEMAPHORE = 21, + VK_OBJECT_TYPE_EVENT = 22, + VK_OBJECT_TYPE_QUERY_POOL = 23, + VK_OBJECT_TYPE_FRAMEBUFFER = 24, + VK_OBJECT_TYPE_RENDER_PASS = 25, + VK_OBJECT_TYPE_PIPELINE_CACHE = 26, + VK_OBJECT_TYPE_SWAPCHAIN_KHR = 27, + VK_OBJECT_TYPE_COMMAND_POOL = 28, + VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_INSTANCE, + VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL, + VK_OBJECT_TYPE_NUM = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_INSTANCE + 1), + VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkDbgObjectType; + +#define VK_DEBUG_REPORT_EXTENSION_NAME "DEBUG_REPORT" + +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDbgMsgCallback) + +// ------------------------------------------------------------------------------------------------ +// Enumerations + +typedef enum VkDbgReportFlags_ +{ + VK_DBG_REPORT_INFO_BIT = 0x0001, + VK_DBG_REPORT_WARN_BIT = 0x0002, + VK_DBG_REPORT_PERF_WARN_BIT = 0x0004, + VK_DBG_REPORT_ERROR_BIT = 0x0008, + VK_DBG_REPORT_DEBUG_BIT = 0x0010, +} VkDbgReportFlags; + +// Debug Report ERROR codes +typedef enum _DEBUG_REPORT_ERROR +{ + DEBUG_REPORT_NONE, // Used for INFO & other non-error messages + DEBUG_REPORT_CALLBACK_REF, // Callbacks were not destroyed prior to calling DestroyInstance +} DEBUG_REPORT_ERROR; + +#define VK_DEBUG_REPORT_ENUM_EXTEND(type, id) ((type)(VK_DEBUG_REPORT_EXTENSION_NUMBER * -1000 + (id))) + +#define VK_OBJECT_TYPE_MSG_CALLBACK VK_DEBUG_REPORT_ENUM_EXTEND(VkDbgObjectType, 0) +#define VK_ERROR_VALIDATION_FAILED VK_DEBUG_REPORT_ENUM_EXTEND(VkResult, 0) + +// ------------------------------------------------------------------------------------------------ +// Vulkan function pointers + +typedef VkBool32 (*PFN_vkDbgMsgCallback)( + VkFlags msgFlags, + VkDbgObjectType objType, + uint64_t srcObject, + size_t location, + int32_t msgCode, + const char* pLayerPrefix, + const char* pMsg, + void* pUserData); + +// ------------------------------------------------------------------------------------------------ +// API functions + +typedef VkResult (VKAPI_PTR *PFN_vkDbgCreateMsgCallback)(VkInstance instance, VkFlags msgFlags, const PFN_vkDbgMsgCallback pfnMsgCallback, void* pUserData, VkDbgMsgCallback* pMsgCallback); +typedef VkResult (VKAPI_PTR *PFN_vkDbgDestroyMsgCallback)(VkInstance instance, VkDbgMsgCallback msgCallback); + +#ifdef VK_PROTOTYPES + +// DebugReport extension entrypoints +VKAPI_ATTR VkResult VKAPI_CALL vkDbgCreateMsgCallback( + VkInstance instance, + VkFlags msgFlags, + const PFN_vkDbgMsgCallback pfnMsgCallback, + void* pUserData, + VkDbgMsgCallback* pMsgCallback); + +VKAPI_ATTR VkResult VKAPI_CALL vkDbgDestroyMsgCallback( + VkInstance instance, + VkDbgMsgCallback msgCallback); + +// DebugReport utility callback functions +VKAPI_ATTR void VKAPI_CALL vkDbgStringCallback( + VkFlags msgFlags, + VkDbgObjectType objType, + uint64_t srcObject, + size_t location, + int32_t msgCode, + const char* pLayerPrefix, + const char* pMsg, + void* pUserData); + +VKAPI_ATTR void VKAPI_CALL vkDbgStdioCallback( + VkFlags msgFlags, + VkDbgObjectType objType, + uint64_t srcObject, + size_t location, + int32_t msgCode, + const char* pLayerPrefix, + const char* pMsg, + void* pUserData); + +VKAPI_ATTR void VKAPI_CALL vkDbgBreakCallback( + VkFlags msgFlags, + VkDbgObjectType objType, + uint64_t srcObject, + size_t location, + int32_t msgCode, + const char* pLayerPrefix, + const char* pMsg, + void* pUserData); + +#endif // VK_PROTOTYPES + +#ifdef __cplusplus +} // extern "C" +#endif // __cplusplus + +#endif // __VK_LUNARG_DEBUG_REPORT_H__ -- cgit v1.2.3