added VKDebugUtils.h/.cpp
This commit is contained in:
parent
bc3a044a56
commit
12760ab5c5
2
CMUtil
2
CMUtil
@ -1 +1 @@
|
||||
Subproject commit c3addef6b7f2fc38737ea5bfe01e55b7c35b3a7a
|
||||
Subproject commit 13b5a7347ea6a2b44f728847c2ce131e844f6d7c
|
@ -176,7 +176,6 @@ private:
|
||||
|
||||
sp->pipeline_fan =gbuffer.rp->CreatePipeline(sp->material_instance,InlinePipeline::Solid3D,Prim::Fan);
|
||||
|
||||
|
||||
return sp->pipeline_fan;
|
||||
}
|
||||
|
||||
|
57
inc/hgl/graph/VKDebugUtils.h
Normal file
57
inc/hgl/graph/VKDebugUtils.h
Normal file
@ -0,0 +1,57 @@
|
||||
#ifndef HGL_GRAPH_VULKAN_DEBUG_UTILS_INCLUDE
|
||||
#define HGL_GRAPH_VULKAN_DEBUG_UTILS_INCLUDE
|
||||
|
||||
#include<hgl/graph/VK.h>
|
||||
#include<hgl/type/Color4f.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
class VKDebugUtils
|
||||
{
|
||||
VkDevice device;
|
||||
|
||||
PFN_vkSetDebugUtilsObjectNameEXT s_vkSetDebugUtilsObjectName;
|
||||
PFN_vkCmdBeginDebugUtilsLabelEXT s_vkCmdBeginDebugUtilsLabel;
|
||||
PFN_vkCmdEndDebugUtilsLabelEXT s_vkCmdEndDebugUtilsLabel;
|
||||
|
||||
public:
|
||||
|
||||
VKDebugUtils(VkDevice dev);
|
||||
~VKDebugUtils()=default;
|
||||
|
||||
void SetName(VkObjectType,uint64_t,const char *);
|
||||
|
||||
void SetInstance (VkInstance inst, const char *name){SetName(VK_OBJECT_TYPE_INSTANCE, (uint64_t)inst, 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);}
|
||||
void SetQueue (VkQueue queue, const char *name){SetName(VK_OBJECT_TYPE_QUEUE, (uint64_t)queue, name);}
|
||||
void SetSemaphore (VkSemaphore sema, const char *name){SetName(VK_OBJECT_TYPE_SEMAPHORE, (uint64_t)sema, name);}
|
||||
void SetCommandBuffer (VkCommandBuffer cb, const char *name){SetName(VK_OBJECT_TYPE_COMMAND_BUFFER, (uint64_t)cb, name);}
|
||||
void SetFence (VkFence fence, const char *name){SetName(VK_OBJECT_TYPE_FENCE, (uint64_t)fence, name);}
|
||||
void SetDeviceMemory (VkDeviceMemory mem, const char *name){SetName(VK_OBJECT_TYPE_DEVICE_MEMORY, (uint64_t)mem, name);}
|
||||
void SetBuffer (VkBuffer buf, const char *name){SetName(VK_OBJECT_TYPE_BUFFER, (uint64_t)buf, name);}
|
||||
void SetImage (VkImage img, const char *name){SetName(VK_OBJECT_TYPE_IMAGE, (uint64_t)img, name);}
|
||||
void SetEvent (VkEvent event, const char *name){SetName(VK_OBJECT_TYPE_EVENT, (uint64_t)event, name);}
|
||||
void SetQueryPool (VkQueryPool qpool, const char *name){SetName(VK_OBJECT_TYPE_QUERY_POOL, (uint64_t)qpool, name);}
|
||||
void SetBufferView (VkBufferView bview, const char *name){SetName(VK_OBJECT_TYPE_BUFFER_VIEW, (uint64_t)bview, name);}
|
||||
void SetImageView (VkImageView iview, const char *name){SetName(VK_OBJECT_TYPE_IMAGE_VIEW, (uint64_t)iview, name);}
|
||||
void SetShaderModule (VkShaderModule smod, const char *name){SetName(VK_OBJECT_TYPE_SHADER_MODULE, (uint64_t)smod, name);}
|
||||
void SetPipelineCache (VkPipelineCache pcache, const char *name){SetName(VK_OBJECT_TYPE_PIPELINE_CACHE, (uint64_t)pcache, name);}
|
||||
void SetPipelineLayout (VkPipelineLayout playout,const char *name){SetName(VK_OBJECT_TYPE_PIPELINE_LAYOUT, (uint64_t)playout, name);}
|
||||
void SetRenderPass (VkRenderPass rpass, const char *name){SetName(VK_OBJECT_TYPE_RENDER_PASS, (uint64_t)rpass, name);}
|
||||
void SetPipeline (VkPipeline pipe, const char *name){SetName(VK_OBJECT_TYPE_PIPELINE, (uint64_t)pipe, name);}
|
||||
void SetDescriptorSetLayout (VkDescriptorSetLayout dsl, const char *name){SetName(VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT, (uint64_t)dsl, name);}
|
||||
void SetSampler (VkSampler s, const char *name){SetName(VK_OBJECT_TYPE_SAMPLER, (uint64_t)s, name);}
|
||||
void SetDescriptorPool (VkDescriptorPool dp, const char *name){SetName(VK_OBJECT_TYPE_DESCRIPTOR_POOL, (uint64_t)dp, name);}
|
||||
void SetDescriptorSet (VkDescriptorSet ds, const char *name){SetName(VK_OBJECT_TYPE_DESCRIPTOR_SET, (uint64_t)ds, name);}
|
||||
void SetFrameBuffer (VkFramebuffer fbo, const char *name){SetName(VK_OBJECT_TYPE_FRAMEBUFFER, (uint64_t)fbo, name);}
|
||||
void SetCommandPool (VkCommandPool cp, const char *name){SetName(VK_OBJECT_TYPE_COMMAND_POOL, (uint64_t)cp, name);}
|
||||
|
||||
void Begin(VkCommandBuffer,const char *,const Color4f &color=Color4f(1,1,1,1));
|
||||
void End(VkCommandBuffer cmd_buf)
|
||||
{
|
||||
if(s_vkCmdEndDebugUtilsLabel)
|
||||
s_vkCmdEndDebugUtilsLabel(cmd_buf);
|
||||
}
|
||||
};//class VKDebugUtils
|
||||
VK_NAMESPACE_END
|
||||
#endif//HGL_GRAPH_VULKAN_DEBUG_UTILS_INCLUDE
|
@ -103,8 +103,10 @@ SET(VK_INST_SOURCE ${SG_INCLUDE_PATH}/VKInstance.h
|
||||
|
||||
SET(VK_DEBUG_SOURCE ${SG_INCLUDE_PATH}/VKDebugOut.h
|
||||
${SG_INCLUDE_PATH}/VKDebugMaker.h
|
||||
Vulkan/VKDebugOut.cpp
|
||||
Vulkan/VKDebugMaker.cpp)
|
||||
${SG_INCLUDE_PATH}/VKDebugUtils.h
|
||||
Vulkan/Debug/VKDebugOut.cpp
|
||||
Vulkan/Debug/VKDebugMaker.cpp
|
||||
Vulkan/Debug/VKDebugUtils.cpp)
|
||||
|
||||
SET(VK_MEMORY_SOURCE ${SG_INCLUDE_PATH}/VKMemory.h
|
||||
${SG_INCLUDE_PATH}/VKMemoryAllocator.h
|
||||
|
39
src/SceneGraph/Vulkan/Debug/VKDebugUtils.cpp
Normal file
39
src/SceneGraph/Vulkan/Debug/VKDebugUtils.cpp
Normal file
@ -0,0 +1,39 @@
|
||||
#include<hgl/graph/VKDebugUtils.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
VKDebugUtils::VKDebugUtils(VkDevice dev)
|
||||
{
|
||||
device=dev;
|
||||
|
||||
s_vkSetDebugUtilsObjectName=(PFN_vkSetDebugUtilsObjectNameEXT)vkGetDeviceProcAddr(device,"vkSetDebugUtilsObjectNameEXT");
|
||||
s_vkCmdBeginDebugUtilsLabel=(PFN_vkCmdBeginDebugUtilsLabelEXT)vkGetDeviceProcAddr(device,"vkCmdBeginDebugUtilsLabelEXT");
|
||||
s_vkCmdEndDebugUtilsLabel=(PFN_vkCmdEndDebugUtilsLabelEXT)vkGetDeviceProcAddr(device,"vkCmdEndDebugUtilsLabelEXT");
|
||||
}
|
||||
|
||||
void VKDebugUtils::SetName(VkObjectType type,uint64_t handle,const char *name)
|
||||
{
|
||||
if(!s_vkSetDebugUtilsObjectName)return;
|
||||
|
||||
VkDebugUtilsObjectNameInfoEXT name_info={};
|
||||
|
||||
name_info.sType=VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
|
||||
name_info.objectType=type;
|
||||
name_info.objectHandle=handle;
|
||||
name_info.pObjectName=name;
|
||||
|
||||
s_vkSetDebugUtilsObjectName(device,&name_info);
|
||||
}
|
||||
|
||||
void VKDebugUtils::Begin(VkCommandBuffer cmd_buf,const char *name,const Color4f &color)
|
||||
{
|
||||
if(!s_vkCmdBeginDebugUtilsLabel)return;
|
||||
|
||||
VkDebugUtilsLabelEXT label={};
|
||||
|
||||
label.sType=VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT;
|
||||
label.pLabelName=name;
|
||||
memcpy(label.color,&color,sizeof(float)*4);
|
||||
|
||||
s_vkCmdBeginDebugUtilsLabel(cmd_buf,&label);
|
||||
}
|
||||
VK_NAMESPACE_END
|
@ -114,6 +114,10 @@ VAB *VertexShaderModule::CreateVAB(const VABConfigInfo *cfg)
|
||||
bind->inputRate =vac.instance?VK_VERTEX_INPUT_RATE_INSTANCE:VK_VERTEX_INPUT_RATE_VERTEX;
|
||||
}
|
||||
|
||||
//
|
||||
{
|
||||
}
|
||||
|
||||
bind->stride =GetStrideByFormat(attr->format);
|
||||
|
||||
++attr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user