debug_utils.h 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /*
  2. * Copyright (c) 2015-2017 The Khronos Group Inc.
  3. * Copyright (c) 2015-2017 Valve Corporation
  4. * Copyright (c) 2015-2017 LunarG, Inc.
  5. * Copyright (C) 2015-2016 Google Inc.
  6. *
  7. * Licensed under the Apache License, Version 2.0 (the "License");
  8. * you may not use this file except in compliance with the License.
  9. * You may obtain a copy of the License at
  10. *
  11. * http://www.apache.org/licenses/LICENSE-2.0
  12. *
  13. * Unless required by applicable law or agreed to in writing, software
  14. * distributed under the License is distributed on an "AS IS" BASIS,
  15. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16. * See the License for the specific language governing permissions and
  17. * limitations under the License.
  18. *
  19. * Author: Courtney Goeltzenleuchter <[email protected]>
  20. * Author: Jon Ashburn <[email protected]>
  21. * Author: Mark Young <[email protected]>
  22. *
  23. */
  24. #include "vk_loader_platform.h"
  25. #include "loader.h"
  26. // General utilities
  27. void debug_utils_AddInstanceExtensions(const struct loader_instance *inst, struct loader_extension_list *ext_list);
  28. void debug_utils_CreateInstance(struct loader_instance *ptr_instance, const VkInstanceCreateInfo *pCreateInfo);
  29. bool debug_utils_InstanceGpa(struct loader_instance *ptr_instance, const char *name, void **addr);
  30. bool debug_utils_ReportFlagsToAnnotFlags(VkDebugReportFlagsEXT dr_flags, bool default_flag_is_spec,
  31. VkDebugUtilsMessageSeverityFlagBitsEXT *da_severity,
  32. VkDebugUtilsMessageTypeFlagsEXT *da_type);
  33. bool debug_utils_AnnotFlagsToReportFlags(VkDebugUtilsMessageSeverityFlagBitsEXT da_severity,
  34. VkDebugUtilsMessageTypeFlagsEXT da_type, VkDebugReportFlagsEXT *dr_flags);
  35. bool debug_utils_ReportObjectToAnnotObject(VkDebugReportObjectTypeEXT dr_object_type, uint64_t object_handle,
  36. VkDebugUtilsObjectNameInfoEXT *da_object_name_info);
  37. bool debug_utils_AnnotObjectToDebugReportObject(const VkDebugUtilsObjectNameInfoEXT *da_object_name_info,
  38. VkDebugReportObjectTypeEXT *dr_object_type, uint64_t *dr_object_handle);
  39. // VK_EXT_debug_utils related items
  40. VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDebugUtilsMessengerEXT(VkInstance instance,
  41. const VkDebugUtilsMessengerCreateInfoEXT *pCreateInfo,
  42. const VkAllocationCallbacks *pAllocator,
  43. VkDebugUtilsMessengerEXT *pMessenger);
  44. VKAPI_ATTR void VKAPI_CALL terminator_DestroyDebugUtilsMessengerEXT(VkInstance instance, VkDebugUtilsMessengerEXT messenger,
  45. const VkAllocationCallbacks *pAllocator);
  46. VKAPI_ATTR void VKAPI_CALL terminator_SubmitDebugUtilsMessageEXT(VkInstance instance,
  47. VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
  48. VkDebugUtilsMessageTypeFlagsEXT messageTypes,
  49. const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData);
  50. VkResult util_CreateDebugUtilsMessenger(struct loader_instance *inst, const VkDebugUtilsMessengerCreateInfoEXT *pCreateInfo,
  51. const VkAllocationCallbacks *pAllocator, VkDebugUtilsMessengerEXT messenger);
  52. VkResult util_CreateDebugUtilsMessengers(struct loader_instance *inst, const VkAllocationCallbacks *pAllocator,
  53. uint32_t num_messengers, VkDebugUtilsMessengerCreateInfoEXT *infos,
  54. VkDebugUtilsMessengerEXT *messengers);
  55. VkBool32 util_SubmitDebugUtilsMessageEXT(const struct loader_instance *inst, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
  56. VkDebugUtilsMessageTypeFlagsEXT messageTypes,
  57. const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData);
  58. VkResult util_CopyDebugUtilsMessengerCreateInfos(const void *pChain, const VkAllocationCallbacks *pAllocator,
  59. uint32_t *num_messengers, VkDebugUtilsMessengerCreateInfoEXT **infos,
  60. VkDebugUtilsMessengerEXT **messengers);
  61. void util_DestroyDebugUtilsMessenger(struct loader_instance *inst, VkDebugUtilsMessengerEXT messenger,
  62. const VkAllocationCallbacks *pAllocator);
  63. void util_DestroyDebugUtilsMessengers(struct loader_instance *inst, const VkAllocationCallbacks *pAllocator,
  64. uint32_t num_messengers, VkDebugUtilsMessengerEXT *messengers);
  65. void util_FreeDebugUtilsMessengerCreateInfos(const VkAllocationCallbacks *pAllocator, VkDebugUtilsMessengerCreateInfoEXT *infos,
  66. VkDebugUtilsMessengerEXT *messengers);
  67. // VK_EXT_debug_report related items
  68. VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDebugReportCallbackEXT(VkInstance instance,
  69. const VkDebugReportCallbackCreateInfoEXT *pCreateInfo,
  70. const VkAllocationCallbacks *pAllocator,
  71. VkDebugReportCallbackEXT *pCallback);
  72. VKAPI_ATTR void VKAPI_CALL terminator_DestroyDebugReportCallbackEXT(VkInstance instance, VkDebugReportCallbackEXT callback,
  73. const VkAllocationCallbacks *pAllocator);
  74. VKAPI_ATTR void VKAPI_CALL terminator_DebugReportMessageEXT(VkInstance instance, VkDebugReportFlagsEXT flags,
  75. VkDebugReportObjectTypeEXT objType, uint64_t object, size_t location,
  76. int32_t msgCode, const char *pLayerPrefix, const char *pMsg);
  77. VkResult util_CreateDebugReportCallback(struct loader_instance *inst, VkDebugReportCallbackCreateInfoEXT *pCreateInfo,
  78. const VkAllocationCallbacks *pAllocator, VkDebugReportCallbackEXT callback);
  79. VkResult util_CreateDebugReportCallbacks(struct loader_instance *inst, const VkAllocationCallbacks *pAllocator,
  80. uint32_t num_callbacks, VkDebugReportCallbackCreateInfoEXT *infos,
  81. VkDebugReportCallbackEXT *callbacks);
  82. VkBool32 util_DebugReportMessage(const struct loader_instance *inst, VkFlags msgFlags, VkDebugReportObjectTypeEXT objectType,
  83. uint64_t srcObject, size_t location, int32_t msgCode, const char *pLayerPrefix, const char *pMsg);
  84. VkResult util_CopyDebugReportCreateInfos(const void *pChain, const VkAllocationCallbacks *pAllocator, uint32_t *num_callbacks,
  85. VkDebugReportCallbackCreateInfoEXT **infos, VkDebugReportCallbackEXT **callbacks);
  86. void util_DestroyDebugReportCallback(struct loader_instance *inst, VkDebugReportCallbackEXT callback,
  87. const VkAllocationCallbacks *pAllocator);
  88. void util_DestroyDebugReportCallbacks(struct loader_instance *inst, const VkAllocationCallbacks *pAllocator, uint32_t num_callbacks,
  89. VkDebugReportCallbackEXT *callbacks);
  90. void util_FreeDebugReportCreateInfos(const VkAllocationCallbacks *pAllocator, VkDebugReportCallbackCreateInfoEXT *infos,
  91. VkDebugReportCallbackEXT *callbacks);