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);
+
VkShaderModule vkh_load_module(VkDevice dev, const char* path);
bool vkh_memory_type_from_properties(VkPhysicalDeviceMemoryProperties* memory_properties, uint32_t typeBits,
* THE SOFTWARE.
*/
#include "vkh_device.h"
+#include "string.h"
#define KNRM "\x1B[0m\x1B[40m"
#define KRED "\x1B[31m\x1B[40m"
#define KWHT "\x1B[37m\x1B[40m"
static VkDebugReportCallbackEXT msgCallback;
-static PFN_vkDebugMarkerSetObjectNameEXT DebugMarkerSetObjectNameEXT;
+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;
VKAPI_ATTR VkBool32 VKAPI_CALL messageCallback(
VkDebugReportFlagsEXT flags,
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");
return dev;
}
}
void vkh_device_set_object_name (VkhDevice dev, VkDebugReportObjectTypeEXT objectType, uint64_t handle, const char* name){
- VkDebugMarkerObjectNameInfoEXT info = {
+ const VkDebugMarkerObjectNameInfoEXT info = {
.sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
.pNext = 0,
.objectType = objectType,
.object = handle,
.pObjectName= name
};
- //DebugMarkerSetObjectNameEXT (dev->dev, &info);
+ DebugMarkerSetObjectNameEXT (dev->dev, &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,
+ .pNext = 0,
+ .pMarkerName= name
+ };
+ memcpy (info.color, color, 4 * sizeof(float));
+ CmdDebugMarkerBegin (cmd, &info);
+}
+void vkh_cmd_marker_end (VkCommandBuffer cmd) {
+ CmdDebugMarkerEnd (cmd);
+}
+