added more type to DeubgMaker/DebugUtils

This commit is contained in:
2022-09-26 17:06:04 +08:00
parent d98df3ee9c
commit a0a5ab5da4
2 changed files with 111 additions and 66 deletions

View File

@@ -7,60 +7,80 @@
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
struct DebugMakerFunction struct DebugMakerFunction
{ {
PFN_vkDebugMarkerSetObjectTagEXT SetObjectTag; PFN_vkDebugMarkerSetObjectTagEXT SetObjectTag;
PFN_vkDebugMarkerSetObjectNameEXT SetObjectName; PFN_vkDebugMarkerSetObjectNameEXT SetObjectName;
PFN_vkCmdDebugMarkerBeginEXT Begin; PFN_vkCmdDebugMarkerBeginEXT Begin;
PFN_vkCmdDebugMarkerEndEXT End; PFN_vkCmdDebugMarkerEndEXT End;
PFN_vkCmdDebugMarkerInsertEXT Insert; PFN_vkCmdDebugMarkerInsertEXT Insert;
};//struct DebugMakerFunction };//struct DebugMakerFunction
class DebugMaker class DebugMaker
{ {
VkDevice device; VkDevice device;
DebugMakerFunction dmf; DebugMakerFunction dmf;
protected: protected:
void SetObjectName(uint64_t object, VkDebugReportObjectTypeEXT objectType, const char *name); void SetObjectName(uint64_t object, VkDebugReportObjectTypeEXT objectType, const char *name);
void SetObjectTag(uint64_t object, VkDebugReportObjectTypeEXT objectType, uint64_t name, size_t tagSize, const void* tag); void SetObjectTag(uint64_t object, VkDebugReportObjectTypeEXT objectType, uint64_t name, size_t tagSize, const void* tag);
private: private:
friend DebugMaker *CreateDebugMaker(VkDevice device); friend DebugMaker *CreateDebugMaker(VkDevice device);
DebugMaker(VkDevice dev,const DebugMakerFunction &f) DebugMaker(VkDevice dev,const DebugMakerFunction &f)
{ {
device=dev; device=dev;
dmf=f; dmf=f;
} }
public: public:
void Begin(VkCommandBuffer cmdbuffer, const char * pMarkerName, const Color4f &color); void Begin(VkCommandBuffer cmdbuffer, const char * pMarkerName, const Color4f &color);
void Insert(VkCommandBuffer cmdbuffer, const char *markerName, const Color4f &color); void Insert(VkCommandBuffer cmdbuffer, const char *markerName, const Color4f &color);
void End(VkCommandBuffer cmdBuffer); void End(VkCommandBuffer cmdBuffer);
#define DEBUG_MAKER_SET_FUNC(type,MNAME) void Set##type(Vk##type obj,const char *name){SetObjectName((uint64_t)obj,VK_DEBUG_REPORT_OBJECT_TYPE_##MNAME##_EXT,name);} #define DEBUG_MAKER_SET_FUNC(type,MNAME) void Set##type(Vk##type obj,const char *name){SetObjectName((uint64_t)obj,VK_DEBUG_REPORT_OBJECT_TYPE_##MNAME##_EXT,name);}
DEBUG_MAKER_SET_FUNC(CommandBuffer, COMMAND_BUFFER) DEBUG_MAKER_SET_FUNC(Instance, INSTANCE)
DEBUG_MAKER_SET_FUNC(Queue, QUEUE) DEBUG_MAKER_SET_FUNC(PhysicalDevice, PHYSICAL_DEVICE)
DEBUG_MAKER_SET_FUNC(Image, IMAGE) DEBUG_MAKER_SET_FUNC(Device, DEVICE)
DEBUG_MAKER_SET_FUNC(Sampler, SAMPLER) DEBUG_MAKER_SET_FUNC(Queue, QUEUE)
DEBUG_MAKER_SET_FUNC(Buffer, BUFFER) DEBUG_MAKER_SET_FUNC(Semaphore, SEMAPHORE)
DEBUG_MAKER_SET_FUNC(DeviceMemory, DEVICE_MEMORY) DEBUG_MAKER_SET_FUNC(CommandBuffer, COMMAND_BUFFER)
DEBUG_MAKER_SET_FUNC(ShaderModule, SHADER_MODULE) DEBUG_MAKER_SET_FUNC(Fence, FENCE)
DEBUG_MAKER_SET_FUNC(Pipeline, PIPELINE) DEBUG_MAKER_SET_FUNC(DeviceMemory, DEVICE_MEMORY)
DEBUG_MAKER_SET_FUNC(PipelineLayout, PIPELINE_LAYOUT) DEBUG_MAKER_SET_FUNC(Buffer, BUFFER)
DEBUG_MAKER_SET_FUNC(RenderPass, RENDER_PASS) DEBUG_MAKER_SET_FUNC(Image, IMAGE)
DEBUG_MAKER_SET_FUNC(Framebuffer, FRAMEBUFFER) DEBUG_MAKER_SET_FUNC(Event, EVENT)
DEBUG_MAKER_SET_FUNC(DescriptorSetLayout, DESCRIPTOR_SET_LAYOUT) DEBUG_MAKER_SET_FUNC(QueryPool, QUERY_POOL)
DEBUG_MAKER_SET_FUNC(DescriptorSet, DESCRIPTOR_SET) DEBUG_MAKER_SET_FUNC(BufferView, BUFFER_VIEW)
DEBUG_MAKER_SET_FUNC(Semaphore, SEMAPHORE) DEBUG_MAKER_SET_FUNC(ShaderModule, SHADER_MODULE)
DEBUG_MAKER_SET_FUNC(Fence, FENCE) DEBUG_MAKER_SET_FUNC(PipelineCache, PIPELINE_CACHE)
DEBUG_MAKER_SET_FUNC(Event, EVENT) DEBUG_MAKER_SET_FUNC(PipelineLayout, PIPELINE_LAYOUT)
DEBUG_MAKER_SET_FUNC(RenderPass, RENDER_PASS)
DEBUG_MAKER_SET_FUNC(Pipeline, PIPELINE)
DEBUG_MAKER_SET_FUNC(DescriptorSetLayout, DESCRIPTOR_SET_LAYOUT)
DEBUG_MAKER_SET_FUNC(Sampler, SAMPLER)
DEBUG_MAKER_SET_FUNC(DescriptorPool, DESCRIPTOR_POOL)
DEBUG_MAKER_SET_FUNC(DescriptorSet, DESCRIPTOR_SET)
DEBUG_MAKER_SET_FUNC(Framebuffer, FRAMEBUFFER)
DEBUG_MAKER_SET_FUNC(CommandPool, COMMAND_POOL)
DEBUG_MAKER_SET_FUNC(SurfaceKHR, SURFACE_KHR)
DEBUG_MAKER_SET_FUNC(SwapchainKHR, SWAPCHAIN_KHR)
DEBUG_MAKER_SET_FUNC(DebugReportCallbackEXT, DEBUG_REPORT_CALLBACK_EXT)
DEBUG_MAKER_SET_FUNC(DisplayKHR, DISPLAY_KHR)
DEBUG_MAKER_SET_FUNC(DisplayModeKHR, DISPLAY_MODE_KHR)
DEBUG_MAKER_SET_FUNC(ValidationCacheEXT, VALIDATION_CACHE_EXT)
DEBUG_MAKER_SET_FUNC(SamplerYcbcrConversion, SAMPLER_YCBCR_CONVERSION)
DEBUG_MAKER_SET_FUNC(DescriptorUpdateTemplate, DESCRIPTOR_UPDATE_TEMPLATE)
DEBUG_MAKER_SET_FUNC(CuModuleNVX, CU_MODULE_NVX)
DEBUG_MAKER_SET_FUNC(CuFunctionNVX, CU_FUNCTION_NVX)
DEBUG_MAKER_SET_FUNC(AccelerationStructureKHR, ACCELERATION_STRUCTURE_KHR)
DEBUG_MAKER_SET_FUNC(AccelerationStructureNV, ACCELERATION_STRUCTURE_NV)
#undef DEBUG_MAKER_SET_FUNC #undef DEBUG_MAKER_SET_FUNC
};//class DebugMaker };//class DebugMaker
VK_NAMESPACE_END VK_NAMESPACE_END
#endif//HGL_GRAPH_VULKAN_DEBUG_MAKER_INCLUDE #endif//HGL_GRAPH_VULKAN_DEBUG_MAKER_INCLUDE

View File

@@ -33,31 +33,56 @@ public:
void SetName(VkObjectType,uint64_t,const char *); void SetName(VkObjectType,uint64_t,const char *);
void SetInstance (VkInstance inst, const char *name){SetName(VK_OBJECT_TYPE_INSTANCE, (uint64_t)inst, name);} #define DU_FUNC(n,N) void Set##n(Vk##n obj,const char *name){SetName(VK_OBJECT_TYPE_##N,(uint64_t)obj,name);}
void SetPhysicsDevice (VkPhysicalDevice pd, const char *name){SetName(VK_OBJECT_TYPE_PHYSICAL_DEVICE, (uint64_t)pd, name);}
void SetDevice (VkDevice dev, const char *name){SetName(VK_OBJECT_TYPE_DEVICE, (uint64_t)dev, name);} DU_FUNC(Instance ,INSTANCE )
void SetQueue (VkQueue queue, const char *name){SetName(VK_OBJECT_TYPE_QUEUE, (uint64_t)queue, name);} DU_FUNC(PhysicalDevice ,PHYSICAL_DEVICE )
void SetSemaphore (VkSemaphore sema, const char *name){SetName(VK_OBJECT_TYPE_SEMAPHORE, (uint64_t)sema, name);} DU_FUNC(Device ,DEVICE )
void SetCommandBuffer (VkCommandBuffer cb, const char *name){SetName(VK_OBJECT_TYPE_COMMAND_BUFFER, (uint64_t)cb, name);} DU_FUNC(Queue ,QUEUE )
void SetFence (VkFence fence, const char *name){SetName(VK_OBJECT_TYPE_FENCE, (uint64_t)fence, name);} DU_FUNC(Semaphore ,SEMAPHORE )
void SetDeviceMemory (VkDeviceMemory mem, const char *name){SetName(VK_OBJECT_TYPE_DEVICE_MEMORY, (uint64_t)mem, name);} DU_FUNC(CommandBuffer ,COMMAND_BUFFER )
void SetBuffer (VkBuffer buf, const char *name){SetName(VK_OBJECT_TYPE_BUFFER, (uint64_t)buf, name);} DU_FUNC(Fence ,FENCE )
void SetImage (VkImage img, const char *name){SetName(VK_OBJECT_TYPE_IMAGE, (uint64_t)img, name);} DU_FUNC(DeviceMemory ,DEVICE_MEMORY )
void SetEvent (VkEvent event, const char *name){SetName(VK_OBJECT_TYPE_EVENT, (uint64_t)event, name);} DU_FUNC(Buffer ,BUFFER )
void SetQueryPool (VkQueryPool qpool, const char *name){SetName(VK_OBJECT_TYPE_QUERY_POOL, (uint64_t)qpool, name);} DU_FUNC(Image ,IMAGE )
void SetBufferView (VkBufferView bview, const char *name){SetName(VK_OBJECT_TYPE_BUFFER_VIEW, (uint64_t)bview, name);} DU_FUNC(Event ,EVENT )
void SetImageView (VkImageView iview, const char *name){SetName(VK_OBJECT_TYPE_IMAGE_VIEW, (uint64_t)iview, name);} DU_FUNC(QueryPool ,QUERY_POOL )
void SetShaderModule (VkShaderModule smod, const char *name){SetName(VK_OBJECT_TYPE_SHADER_MODULE, (uint64_t)smod, name);} DU_FUNC(BufferView ,BUFFER_VIEW )
void SetPipelineCache (VkPipelineCache pcache, const char *name){SetName(VK_OBJECT_TYPE_PIPELINE_CACHE, (uint64_t)pcache, name);} DU_FUNC(ImageView ,IMAGE_VIEW )
void SetPipelineLayout (VkPipelineLayout playout,const char *name){SetName(VK_OBJECT_TYPE_PIPELINE_LAYOUT, (uint64_t)playout, name);} DU_FUNC(ShaderModule ,SHADER_MODULE )
void SetRenderPass (VkRenderPass rpass, const char *name){SetName(VK_OBJECT_TYPE_RENDER_PASS, (uint64_t)rpass, name);} DU_FUNC(PipelineCache ,PIPELINE_CACHE )
void SetPipeline (VkPipeline pipe, const char *name){SetName(VK_OBJECT_TYPE_PIPELINE, (uint64_t)pipe, name);} DU_FUNC(PipelineLayout ,PIPELINE_LAYOUT )
void SetDescriptorSetLayout (VkDescriptorSetLayout dsl, const char *name){SetName(VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT, (uint64_t)dsl, name);} DU_FUNC(RenderPass ,RENDER_PASS )
void SetSampler (VkSampler s, const char *name){SetName(VK_OBJECT_TYPE_SAMPLER, (uint64_t)s, name);} DU_FUNC(Pipeline ,PIPELINE )
void SetDescriptorPool (VkDescriptorPool dp, const char *name){SetName(VK_OBJECT_TYPE_DESCRIPTOR_POOL, (uint64_t)dp, name);} DU_FUNC(DescriptorSetLayout ,DESCRIPTOR_SET_LAYOUT )
void SetDescriptorSet (VkDescriptorSet ds, const char *name){SetName(VK_OBJECT_TYPE_DESCRIPTOR_SET, (uint64_t)ds, name);} DU_FUNC(Sampler ,SAMPLER )
void SetFrameBuffer (VkFramebuffer fbo, const char *name){SetName(VK_OBJECT_TYPE_FRAMEBUFFER, (uint64_t)fbo, name);} DU_FUNC(DescriptorPool ,DESCRIPTOR_POOL )
void SetCommandPool (VkCommandPool cp, const char *name){SetName(VK_OBJECT_TYPE_COMMAND_POOL, (uint64_t)cp, name);} DU_FUNC(DescriptorSet ,DESCRIPTOR_SET )
DU_FUNC(Framebuffer ,FRAMEBUFFER )
DU_FUNC(CommandPool ,COMMAND_POOL )
DU_FUNC(SamplerYcbcrConversion, SAMPLER_YCBCR_CONVERSION)
DU_FUNC(DescriptorUpdateTemplate, DESCRIPTOR_UPDATE_TEMPLATE)
DU_FUNC(PrivateDataSlot, PRIVATE_DATA_SLOT)
DU_FUNC(SurfaceKHR, SURFACE_KHR)
DU_FUNC(SwapchainKHR, SWAPCHAIN_KHR)
DU_FUNC(DisplayKHR, DISPLAY_KHR)
DU_FUNC(DisplayModeKHR, DISPLAY_MODE_KHR)
DU_FUNC(DebugReportCallbackEXT, DEBUG_REPORT_CALLBACK_EXT)
#ifdef VK_ENABLE_BETA_EXTENSIONS
DU_FUNC(VideoSessionKHR, VIDEO_SESSION_KHR)
DU_FUNC(VideoSessionParametersKHR, VIDEO_SESSION_PARAMETERS_KH)
#endif//VK_ENABLE_BETA_EXTENSIONS
DU_FUNC(CuModuleNVX, CU_MODULE_NVX)
DU_FUNC(CuFunctionNVX, CU_FUNCTION_NVX)
DU_FUNC(DebugUtilsMessengerEXT, DEBUG_UTILS_MESSENGER_EXT)
DU_FUNC(AccelerationStructureKHR, ACCELERATION_STRUCTURE_KHR)
DU_FUNC(ValidationCacheEXT, VALIDATION_CACHE_EXT)
DU_FUNC(AccelerationStructureNV, ACCELERATION_STRUCTURE_NV)
DU_FUNC(PerformanceConfigurationINTEL, PERFORMANCE_CONFIGURATION_INTEL)
DU_FUNC(DeferredOperationKHR, DEFERRED_OPERATION_KHR)
DU_FUNC(IndirectCommandsLayoutNV, INDIRECT_COMMANDS_LAYOUT_NV)
// DU_FUNC(BufferCollectionFuchsia, BUFFER_COLLECTION_FUCHSIA)
void Begin(VkCommandBuffer,const char *,const Color4f &color=Color4f(1,1,1,1)); void Begin(VkCommandBuffer,const char *,const Color4f &color=Color4f(1,1,1,1));
void End(VkCommandBuffer cmd_buf){duf.End(cmd_buf);} void End(VkCommandBuffer cmd_buf){duf.End(cmd_buf);}