Test passing NULL in object names/labels

This commit is contained in:
baldurk
2020-04-21 17:09:33 +01:00
parent 9accb4033b
commit 3ef67d6647
3 changed files with 54 additions and 6 deletions
@@ -3690,7 +3690,7 @@ bool WrappedVulkan::Serialise_vkCmdDebugMarkerBeginEXT(SerialiserType &ser,
ObjDisp(commandBuffer)->CmdDebugMarkerBeginEXT(Unwrap(commandBuffer), &Marker);
DrawcallDescription draw;
draw.name = Marker.pMarkerName;
draw.name = Marker.pMarkerName ? Marker.pMarkerName : "";
draw.flags |= DrawFlags::PushMarker;
draw.markerColor[0] = RDCCLAMP(Marker.color[0], 0.0f, 1.0f);
@@ -3840,7 +3840,7 @@ bool WrappedVulkan::Serialise_vkCmdDebugMarkerInsertEXT(SerialiserType &ser,
ObjDisp(commandBuffer)->CmdDebugMarkerInsertEXT(Unwrap(commandBuffer), &Marker);
DrawcallDescription draw;
draw.name = Marker.pMarkerName;
draw.name = Marker.pMarkerName ? Marker.pMarkerName : "";
draw.flags |= DrawFlags::SetMarker;
draw.markerColor[0] = RDCCLAMP(Marker.color[0], 0.0f, 1.0f);
@@ -4592,7 +4592,7 @@ bool WrappedVulkan::Serialise_vkCmdBeginDebugUtilsLabelEXT(SerialiserType &ser,
ObjDisp(commandBuffer)->CmdBeginDebugUtilsLabelEXT(Unwrap(commandBuffer), &Label);
DrawcallDescription draw;
draw.name = Label.pLabelName;
draw.name = Label.pLabelName ? Label.pLabelName : "";
draw.flags |= DrawFlags::PushMarker;
draw.markerColor[0] = RDCCLAMP(Label.color[0], 0.0f, 1.0f);
@@ -4733,7 +4733,7 @@ bool WrappedVulkan::Serialise_vkCmdInsertDebugUtilsLabelEXT(SerialiserType &ser,
ObjDisp(commandBuffer)->CmdInsertDebugUtilsLabelEXT(Unwrap(commandBuffer), &Label);
DrawcallDescription draw;
draw.name = Label.pLabelName;
draw.name = Label.pLabelName ? Label.pLabelName : "";
draw.flags |= DrawFlags::SetMarker;
draw.markerColor[0] = RDCCLAMP(Label.color[0], 0.0f, 1.0f);
@@ -1457,7 +1457,7 @@ bool WrappedVulkan::Serialise_vkQueueBeginDebugUtilsLabelEXT(SerialiserType &ser
if(IsLoading(m_State))
{
DrawcallDescription draw;
draw.name = Label.pLabelName;
draw.name = Label.pLabelName ? Label.pLabelName : "";
draw.flags |= DrawFlags::PushMarker;
draw.markerColor[0] = RDCCLAMP(Label.color[0], 0.0f, 1.0f);
@@ -1559,7 +1559,7 @@ bool WrappedVulkan::Serialise_vkQueueInsertDebugUtilsLabelEXT(SerialiserType &se
if(IsLoading(m_State))
{
DrawcallDescription draw;
draw.name = Label.pLabelName;
draw.name = Label.pLabelName ? Label.pLabelName : "";
draw.flags |= DrawFlags::SetMarker;
draw.markerColor[0] = RDCCLAMP(Label.color[0], 0.0f, 1.0f);
+48
View File
@@ -943,6 +943,16 @@ void main()
AllocatedBuffer xfbBuf(this, vkh::BufferCreateInfo(256, xfbUsage),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_GPU_ONLY}));
if(vkSetDebugUtilsObjectNameEXT)
{
VkDebugUtilsObjectNameInfoEXT info = {};
info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
info.objectType = VK_OBJECT_TYPE_BUFFER;
info.objectHandle = (uint64_t)xfbBuf.buffer;
info.pObjectName = NULL;
vkSetDebugUtilsObjectNameEXT(device, &info);
}
VkFence fence;
CHECK_VKR(vkCreateFence(device, vkh::FenceCreateInfo(VK_FENCE_CREATE_SIGNALED_BIT), NULL, &fence));
@@ -1108,12 +1118,50 @@ void main()
vkCmdEndRenderPass(cmd);
if(vkCmdBeginDebugUtilsLabelEXT)
{
VkDebugUtilsLabelEXT info = {};
info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT;
info.pLabelName = NULL;
vkCmdBeginDebugUtilsLabelEXT(cmd, &info);
}
if(vkCmdInsertDebugUtilsLabelEXT)
{
VkDebugUtilsLabelEXT info = {};
info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT;
info.pLabelName = NULL;
vkCmdInsertDebugUtilsLabelEXT(cmd, &info);
}
if(vkCmdEndDebugUtilsLabelEXT)
vkCmdEndDebugUtilsLabelEXT(cmd);
vkEndCommandBuffer(cmd);
Submit(1, 4, {cmd});
vkDeviceWaitIdle(device);
if(vkQueueBeginDebugUtilsLabelEXT)
{
VkDebugUtilsLabelEXT info = {};
info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT;
info.pLabelName = NULL;
vkQueueBeginDebugUtilsLabelEXT(queue, &info);
}
if(vkQueueInsertDebugUtilsLabelEXT)
{
VkDebugUtilsLabelEXT info = {};
info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT;
info.pLabelName = NULL;
vkQueueInsertDebugUtilsLabelEXT(queue, &info);
}
if(vkQueueEndDebugUtilsLabelEXT)
vkQueueEndDebugUtilsLabelEXT(queue);
// scribble over the descriptor contents so that initial contents fetch never gets these
// resources that way
vkh::updateDescriptorSets(