aboutsummaryrefslogtreecommitdiffstatsci
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2020-01-23 00:21:12 +0100
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2020-01-23 00:21:12 +0100
commit02b846b9d89340ceee42b4de3cf3a498bff726a2 (patch)
treed788dc91f567306dd19c194a5e78fa115aa30641
parent8b50312b74b1c553df094666185c8a6183d42d69 (diff)
debug utils labels
-rw-r--r--include/vkh.h9
-rw-r--r--src/vkh_device.c112
-rw-r--r--src/vkh_image.c2
3 files changed, 42 insertions, 81 deletions
diff --git a/include/vkh.h b/include/vkh.h
index 44f937b..7f41e5a 100644
--- a/include/vkh.h
+++ b/include/vkh.h
@@ -92,9 +92,7 @@ VkhDevice vkh_device_create (VkhApp app, VkhPhyInfo phyInfo, VkDevic
VkhDevice vkh_device_import (VkInstance inst, VkPhysicalDevice phy, VkDevice vkDev);
void vkh_device_destroy (VkhDevice dev);
-VkDebugReportCallbackEXT vkh_device_create_debug_report (VkhDevice dev, VkDebugReportFlagsEXT flags);
-void vkh_device_destroy_debug_report (VkhDevice dev, VkDebugReportCallbackEXT dbgReport);
-void vkh_device_set_object_name (VkhDevice dev, VkDebugReportObjectTypeEXT objectType, uint64_t handle, const char *name);
+void vkh_device_set_object_name (VkhDevice dev, VkObjectType objectType, uint64_t handle, const char *name);
VkSampler vkh_device_create_sampler (VkhDevice dev, VkFilter magFilter, VkFilter minFilter,
VkSamplerMipmapMode mipmapMode, VkSamplerAddressMode addressMode);
@@ -169,8 +167,9 @@ void vkh_cmd_submit (VkhQueue queue, VkCommandBuffer *pCmdBuff, VkFence fence);
void vkh_cmd_submit_with_semaphores(VkhQueue queue, VkCommandBuffer *pCmdBuff, VkSemaphore waitSemaphore,
VkSemaphore signalSemaphore, VkFence fence);
-void vkh_cmd_marker_start (VkCommandBuffer cmd, const char* name, float color[4]);
-void vkh_cmd_marker_end (VkCommandBuffer cmd);
+void vkh_cmd_label_start (VkCommandBuffer cmd, const char* name, const float color[]);
+void vkh_cmd_label_end (VkCommandBuffer cmd);
+void vkh_cmd_label_insert (VkCommandBuffer cmd, const char* name, const float color[4]);
VkShaderModule vkh_load_module(VkDevice dev, const char* path);
diff --git a/src/vkh_device.c b/src/vkh_device.c
index 7f508b3..c37e878 100644
--- a/src/vkh_device.c
+++ b/src/vkh_device.c
@@ -24,46 +24,14 @@
#include "vkh_app.h"
#include "string.h"
-static VkDebugReportCallbackEXT msgCallback;
-static PFN_vkDebugMarkerSetObjectNameEXT DebugMarkerSetObjectNameEXT;
-//I add debug markers here for convenience even if device is not part of the signature.
-static PFN_vkCmdDebugMarkerBeginEXT CmdDebugMarkerBegin;
-static PFN_vkCmdDebugMarkerEndEXT CmdDebugMarkerEnd;
-static PFN_vkCmdDebugMarkerInsertEXT CmdDebugMarkerInsert;
-VkBool32 VKAPI_CALL messageCallback(
- VkDebugReportFlagsEXT flags,
- VkDebugReportObjectTypeEXT objType,
- uint64_t srcObject,
- size_t location,
- int32_t msgCode,
- const char* pLayerPrefix,
- const char* pMsg,
- void* pUserData)
-{
- switch (flags) {
- case VK_DEBUG_REPORT_ERROR_BIT_EXT:
- printf ("%sERR: %s%s\n",KRED, pMsg, KNRM);
- break;
- case VK_DEBUG_REPORT_DEBUG_BIT_EXT:
- printf ("%sDBG: %s%s\n",KNRM, pMsg, KNRM);
- break;
- case VK_DEBUG_REPORT_WARNING_BIT_EXT:
- printf ("%sWRN: %s%s\n",KYEL, pMsg, KNRM);
- break;
- case VK_DEBUG_REPORT_INFORMATION_BIT_EXT:
- printf ("%sNFO: %s%s\n",KGRN, pMsg, KNRM);
- break;
- case VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT:
- printf ("%sPRF: %s%s\n",KBLU, pMsg, KNRM);
- break;
- default:
- printf ("%sMSG: %s%s\n",KBLU, pMsg, KNRM);
- break;
- }
- fflush(stdout);
- return VK_FALSE;
-}
+static PFN_vkSetDebugUtilsObjectNameEXT SetDebugUtilsObjectNameEXT;
+static PFN_vkQueueBeginDebugUtilsLabelEXT QueueBeginDebugUtilsLabelEXT;
+static PFN_vkQueueEndDebugUtilsLabelEXT QueueEndDebugUtilsLabelEXT;
+static PFN_vkCmdBeginDebugUtilsLabelEXT CmdBeginDebugUtilsLabelEXT;
+static PFN_vkCmdEndDebugUtilsLabelEXT CmdEndDebugUtilsLabelEXT;
+static PFN_vkCmdInsertDebugUtilsLabelEXT CmdInsertDebugUtilsLabelEXT;
+
VkhDevice vkh_device_create (VkhApp app, VkhPhyInfo phyInfo, VkDeviceCreateInfo* pDevice_info){
VkDevice dev;
VK_CHECK_RESULT(vkCreateDevice (phyInfo->phy, pDevice_info, NULL, &dev));
@@ -83,31 +51,16 @@ VkhDevice vkh_device_import (VkInstance inst, VkPhysicalDevice phy, VkDevice vkD
};
vmaCreateAllocator(&allocatorInfo, &dev->allocator);
- DebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)vkGetInstanceProcAddr(dev->instance, "vkDebugMarkerSetObjectNameEXT");
- CmdDebugMarkerBegin = (PFN_vkCmdDebugMarkerBeginEXT)vkGetInstanceProcAddr(dev->instance, "vkCmdDebugMarkerBeginEXT");
- CmdDebugMarkerEnd = (PFN_vkCmdDebugMarkerEndEXT)vkGetInstanceProcAddr(dev->instance, "vkCmdDebugMarkerEndEXT");
- CmdDebugMarkerInsert = (PFN_vkCmdDebugMarkerInsertEXT)vkGetInstanceProcAddr(dev->instance, "vkCmdDebugMarkerInsertEXT");
+ SetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)vkGetInstanceProcAddr(dev->instance, "vkSetDebugUtilsObjectNameEXT");
+ QueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)vkGetInstanceProcAddr(dev->instance, "vkQueueBeginDebugUtilsLabelEXT");
+ QueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)vkGetInstanceProcAddr(dev->instance, "vkQueueEndDebugUtilsLabelEXT");
+ CmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)vkGetInstanceProcAddr(dev->instance, "vkCmdBeginDebugUtilsLabelEXT");
+ CmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)vkGetInstanceProcAddr(dev->instance, "vkCmdEndDebugUtilsLabelEXT");
+ CmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)vkGetInstanceProcAddr(dev->instance, "vkCmdInsertDebugUtilsLabelEXT");
return dev;
}
-VkDebugReportCallbackEXT vkh_device_create_debug_report (VkhDevice dev, VkDebugReportFlagsEXT flags) {
-
- CreateDebugReportCallback = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(dev->instance, "vkCreateDebugReportCallbackEXT");
- DestroyDebugReportCallback = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(dev->instance, "vkDestroyDebugReportCallbackEXT");
-
- VkDebugReportCallbackCreateInfoEXT dbgCreateInfo = {
- .sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
- .flags = flags,
- .pfnCallback = (PFN_vkDebugReportCallbackEXT)messageCallback
- };
-
- CreateDebugReportCallback (dev->instance, &dbgCreateInfo, VK_NULL_HANDLE, &msgCallback);
- return msgCallback;
-}
-void vkh_device_destroy_debug_report (VkhDevice dev, VkDebugReportCallbackEXT dbgReport){
- DestroyDebugReportCallback (dev->instance, dbgReport, VK_NULL_HANDLE);
-}
void vkh_device_destroy_sampler (VkhDevice dev, VkSampler sampler) {
vkDestroySampler (dev->dev, sampler,NULL);
}
@@ -131,27 +84,36 @@ void vkh_device_destroy (VkhDevice dev) {
free (dev);
}
-void vkh_device_set_object_name (VkhDevice dev, VkDebugReportObjectTypeEXT objectType, uint64_t handle, const char* name){
- const VkDebugMarkerObjectNameInfoEXT info = {
- .sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
+void vkh_device_set_object_name (VkhDevice dev, VkObjectType objectType, uint64_t handle, const char* name){
+ const VkDebugUtilsObjectNameInfoEXT info = {
+ .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
+ .pNext = 0,
+ .objectType = objectType,
+ .objectHandle= handle,
+ .pObjectName = name
+ };
+ SetDebugUtilsObjectNameEXT (dev->dev, &info);
+}
+void vkh_cmd_label_start (VkCommandBuffer cmd, const char* name, const float color[4]) {
+ const VkDebugUtilsLabelEXT info = {
+ .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
.pNext = 0,
- .objectType = objectType,
- .object = handle,
- .pObjectName= name
+ .pLabelName= name
};
- DebugMarkerSetObjectNameEXT (dev->dev, &info);
+ memcpy ((void*)info.color, (void*)color, 4 * sizeof(float));
+ CmdBeginDebugUtilsLabelEXT (cmd, &info);
}
-void vkh_cmd_marker_start (VkCommandBuffer cmd, const char* name, float color[4]) {
- const VkDebugMarkerMarkerInfoEXT info = {
- .sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
+void vkh_cmd_label_insert (VkCommandBuffer cmd, const char* name, const float color[4]) {
+ const VkDebugUtilsLabelEXT info = {
+ .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
.pNext = 0,
- .pMarkerName= name
+ .pLabelName= name
};
- memcpy (info.color, color, 4 * sizeof(float));
- CmdDebugMarkerBegin (cmd, &info);
+ memcpy ((void*)info.color, (void*)color, 4 * sizeof(float));
+ CmdInsertDebugUtilsLabelEXT (cmd, &info);
}
-void vkh_cmd_marker_end (VkCommandBuffer cmd) {
- CmdDebugMarkerEnd (cmd);
+void vkh_cmd_label_end (VkCommandBuffer cmd) {
+ CmdEndDebugUtilsLabelEXT (cmd);
}
diff --git a/src/vkh_image.c b/src/vkh_image.c
index 233d67f..cb033e7 100644
--- a/src/vkh_image.c
+++ b/src/vkh_image.c
@@ -247,5 +247,5 @@ void vkh_image_unmap (VkhImage img) {
void vkh_image_set_name (VkhImage img, const char* name){
if (img==NULL)
return;
- vkh_device_set_object_name(img->pDev, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, (uint64_t)img->image, name);
+ vkh_device_set_object_name(img->pDev, VK_OBJECT_TYPE_IMAGE, (uint64_t)img->image, name);
}