mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-24 15:36:33 +00:00
Pass through names from capture when EXT_debug_* is supported
This commit is contained in:
@@ -2161,6 +2161,72 @@ bool WrappedVulkan::Serialise_vkDebugMarkerSetObjectNameEXT(
|
||||
else
|
||||
m_CreationInfo.m_Names[GetResourceManager()->GetLiveID(Object)] = ObjectName;
|
||||
|
||||
VkDebugMarkerObjectNameInfoEXT name = {VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT};
|
||||
name.pObjectName = ObjectName;
|
||||
WrappedVkRes *res = GetResourceManager()->GetLiveResource(Object);
|
||||
|
||||
if(res)
|
||||
{
|
||||
if(IsDispatchableRes(res))
|
||||
{
|
||||
WrappedVkDispRes *disp = (WrappedVkDispRes *)res;
|
||||
name.object = disp->real.handle;
|
||||
}
|
||||
else
|
||||
{
|
||||
WrappedVkNonDispRes *nondisp = (WrappedVkNonDispRes *)res;
|
||||
name.object = nondisp->real.handle;
|
||||
}
|
||||
|
||||
VkDebugReportObjectTypeEXT type = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT;
|
||||
|
||||
switch(IdentifyTypeByPtr(res))
|
||||
{
|
||||
case eResUnknown: type = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT; break;
|
||||
case eResPhysicalDevice: type = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT; break;
|
||||
case eResInstance: type = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT; break;
|
||||
case eResDevice: type = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT; break;
|
||||
case eResQueue: type = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT; break;
|
||||
case eResDeviceMemory: type = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT; break;
|
||||
case eResBuffer: type = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT; break;
|
||||
case eResBufferView: type = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT; break;
|
||||
case eResImage: type = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT; break;
|
||||
case eResImageView: type = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT; break;
|
||||
case eResFramebuffer: type = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT; break;
|
||||
case eResRenderPass: type = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT; break;
|
||||
case eResShaderModule: type = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT; break;
|
||||
case eResPipelineCache: type = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT; break;
|
||||
case eResPipelineLayout: type = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT; break;
|
||||
case eResPipeline: type = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT; break;
|
||||
case eResSampler: type = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT; break;
|
||||
case eResDescriptorPool: type = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT; break;
|
||||
case eResDescriptorSetLayout:
|
||||
type = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT;
|
||||
break;
|
||||
case eResDescriptorSet: type = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT; break;
|
||||
case eResCommandPool: type = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT; break;
|
||||
case eResCommandBuffer: type = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT; break;
|
||||
case eResFence: type = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT; break;
|
||||
case eResEvent: type = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT; break;
|
||||
case eResQueryPool: type = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT; break;
|
||||
case eResSemaphore: type = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT; break;
|
||||
case eResSwapchain: type = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT; break;
|
||||
case eResSurface: type = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT; break;
|
||||
case eResDescUpdateTemplate:
|
||||
type = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT;
|
||||
break;
|
||||
case eResSamplerConversion:
|
||||
type = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT;
|
||||
break;
|
||||
}
|
||||
|
||||
if(ObjDisp(m_Device)->DebugMarkerSetObjectNameEXT && type != VK_OBJECT_TYPE_UNKNOWN)
|
||||
{
|
||||
name.objectType = type;
|
||||
ObjDisp(m_Device)->DebugMarkerSetObjectNameEXT(Unwrap(m_Device), &name);
|
||||
}
|
||||
}
|
||||
|
||||
ResourceDescription &descr = GetResourceDesc(Object);
|
||||
|
||||
AddResourceCurChunk(descr);
|
||||
@@ -2279,6 +2345,66 @@ bool WrappedVulkan::Serialise_vkSetDebugUtilsObjectNameEXT(
|
||||
else
|
||||
m_CreationInfo.m_Names[GetResourceManager()->GetLiveID(Object)] = ObjectName;
|
||||
|
||||
VkDebugUtilsObjectNameInfoEXT name = {VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT};
|
||||
name.pObjectName = ObjectName;
|
||||
WrappedVkRes *res = GetResourceManager()->GetLiveResource(Object);
|
||||
|
||||
if(res)
|
||||
{
|
||||
if(IsDispatchableRes(res))
|
||||
{
|
||||
WrappedVkDispRes *disp = (WrappedVkDispRes *)res;
|
||||
name.objectHandle = disp->real.handle;
|
||||
}
|
||||
else
|
||||
{
|
||||
WrappedVkNonDispRes *nondisp = (WrappedVkNonDispRes *)res;
|
||||
name.objectHandle = nondisp->real.handle;
|
||||
}
|
||||
|
||||
VkObjectType type = VK_OBJECT_TYPE_UNKNOWN;
|
||||
|
||||
switch(IdentifyTypeByPtr(res))
|
||||
{
|
||||
case eResUnknown: type = VK_OBJECT_TYPE_UNKNOWN; break;
|
||||
case eResPhysicalDevice: type = VK_OBJECT_TYPE_PHYSICAL_DEVICE; break;
|
||||
case eResInstance: type = VK_OBJECT_TYPE_INSTANCE; break;
|
||||
case eResDevice: type = VK_OBJECT_TYPE_DEVICE; break;
|
||||
case eResQueue: type = VK_OBJECT_TYPE_QUEUE; break;
|
||||
case eResDeviceMemory: type = VK_OBJECT_TYPE_DEVICE_MEMORY; break;
|
||||
case eResBuffer: type = VK_OBJECT_TYPE_BUFFER; break;
|
||||
case eResBufferView: type = VK_OBJECT_TYPE_BUFFER_VIEW; break;
|
||||
case eResImage: type = VK_OBJECT_TYPE_IMAGE; break;
|
||||
case eResImageView: type = VK_OBJECT_TYPE_IMAGE_VIEW; break;
|
||||
case eResFramebuffer: type = VK_OBJECT_TYPE_FRAMEBUFFER; break;
|
||||
case eResRenderPass: type = VK_OBJECT_TYPE_RENDER_PASS; break;
|
||||
case eResShaderModule: type = VK_OBJECT_TYPE_SHADER_MODULE; break;
|
||||
case eResPipelineCache: type = VK_OBJECT_TYPE_PIPELINE_CACHE; break;
|
||||
case eResPipelineLayout: type = VK_OBJECT_TYPE_PIPELINE_LAYOUT; break;
|
||||
case eResPipeline: type = VK_OBJECT_TYPE_PIPELINE; break;
|
||||
case eResSampler: type = VK_OBJECT_TYPE_SAMPLER; break;
|
||||
case eResDescriptorPool: type = VK_OBJECT_TYPE_DESCRIPTOR_POOL; break;
|
||||
case eResDescriptorSetLayout: type = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT; break;
|
||||
case eResDescriptorSet: type = VK_OBJECT_TYPE_DESCRIPTOR_SET; break;
|
||||
case eResCommandPool: type = VK_OBJECT_TYPE_COMMAND_POOL; break;
|
||||
case eResCommandBuffer: type = VK_OBJECT_TYPE_COMMAND_BUFFER; break;
|
||||
case eResFence: type = VK_OBJECT_TYPE_FENCE; break;
|
||||
case eResEvent: type = VK_OBJECT_TYPE_EVENT; break;
|
||||
case eResQueryPool: type = VK_OBJECT_TYPE_QUERY_POOL; break;
|
||||
case eResSemaphore: type = VK_OBJECT_TYPE_SEMAPHORE; break;
|
||||
case eResSwapchain: type = VK_OBJECT_TYPE_SWAPCHAIN_KHR; break;
|
||||
case eResSurface: type = VK_OBJECT_TYPE_SURFACE_KHR; break;
|
||||
case eResDescUpdateTemplate: type = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE; break;
|
||||
case eResSamplerConversion: type = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION; break;
|
||||
}
|
||||
|
||||
if(ObjDisp(m_Device)->SetDebugUtilsObjectNameEXT && type != VK_OBJECT_TYPE_UNKNOWN)
|
||||
{
|
||||
name.objectType = type;
|
||||
ObjDisp(m_Device)->SetDebugUtilsObjectNameEXT(Unwrap(m_Device), &name);
|
||||
}
|
||||
}
|
||||
|
||||
ResourceDescription &descr = GetResourceDesc(Object);
|
||||
|
||||
AddResourceCurChunk(descr);
|
||||
|
||||
@@ -2095,6 +2095,8 @@ bool WrappedVulkan::Serialise_vkCreateImage(SerialiserType &ser, VkDevice device
|
||||
ResourceId live = GetResourceManager()->WrapResource(Unwrap(device), img);
|
||||
GetResourceManager()->AddLiveResource(Image, img);
|
||||
|
||||
NameVulkanObject(img, StringFormat::Fmt("Image %s", ToStr(Image).c_str()));
|
||||
|
||||
m_CreationInfo.m_Image[live].Init(GetResourceManager(), m_CreationInfo, &CreateInfo);
|
||||
|
||||
bool inserted = false;
|
||||
|
||||
Reference in New Issue
Block a user