Remove VK_LUNARG_DEBUG_MARKER, change support to VK_EXT_debug_marker

This commit is contained in:
baldurk
2016-05-07 10:27:01 +02:00
parent feb98503fe
commit 27ae3b6fbf
11 changed files with 180 additions and 191 deletions
@@ -1,98 +0,0 @@
//
// File: vk_lunarg_debug_marker.h
//
/*
* Copyright (c) 2015-2016 The Khronos Group Inc.
* Copyright (c) 2015-2016 Valve Corporation
* Copyright (c) 2015-2016 LunarG, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and/or associated documentation files (the "Materials"), to
* deal in the Materials without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Materials, and to permit persons to whom the Materials are
* furnished to do so, subject to the following conditions:
*
* The above copyright notice(s) and this permission notice shall be included in
* all copies or substantial portions of the Materials.
*
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
*
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE
* USE OR OTHER DEALINGS IN THE MATERIALS.
*
* Authors:
* Jon Ashburn <jon@lunarg.com>
* Courtney Goeltzenleuchter <courtney@lunarg.com>
*/
#ifndef __VK_DEBUG_MARKER_H__
#define __VK_DEBUG_MARKER_H__
#include "vulkan.h"
#define VK_DEBUG_MARKER_EXTENSION_NUMBER 6
#define VK_DEBUG_MARKER_EXTENSION_REVISION 1
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/*
***************************************************************************************************
* DebugMarker Vulkan Extension API
***************************************************************************************************
*/
#define DEBUG_MARKER_EXTENSION_NAME "VK_LUNARG_DEBUG_MARKER"
// ------------------------------------------------------------------------------------------------
// Enumerations
#define VK_DEBUG_MARKER_ENUM_EXTEND(type, id) \
((type)(VK_DEBUG_MARKER_EXTENSION_NUMBER * -1000 + (id)))
#define VK_OBJECT_INFO_TYPE_DBG_OBJECT_TAG \
VK_DEBUG_MARKER_ENUM_EXTEND(VkDbgObjectInfoType, 0)
#define VK_OBJECT_INFO_TYPE_DBG_OBJECT_NAME \
VK_DEBUG_MARKER_ENUM_EXTEND(VkDbgObjectInfoType, 1)
// ------------------------------------------------------------------------------------------------
// API functions
typedef void(VKAPI_PTR *PFN_vkCmdDbgMarkerBegin)(VkCommandBuffer commandBuffer,
const char *pMarker);
typedef void(VKAPI_PTR *PFN_vkCmdDbgMarkerEnd)(VkCommandBuffer commandBuffer);
typedef VkResult(VKAPI_PTR *PFN_vkDbgSetObjectTag)(
VkDevice device, VkDebugReportObjectTypeEXT objType, uint64_t object,
size_t tagSize, const void *pTag);
typedef VkResult(VKAPI_PTR *PFN_vkDbgSetObjectName)(
VkDevice device, VkDebugReportObjectTypeEXT objType, uint64_t object,
size_t nameSize, const char *pName);
#ifndef VK_NO_PROTOTYPES
// DebugMarker extension entrypoints
VKAPI_ATTR void VKAPI_CALL
vkCmdDbgMarkerBegin(VkCommandBuffer commandBuffer, const char *pMarker);
VKAPI_ATTR void VKAPI_CALL vkCmdDbgMarkerEnd(VkCommandBuffer commandBuffer);
VKAPI_ATTR VkResult VKAPI_CALL
vkDbgSetObjectTag(VkDevice device, VkDebugReportObjectTypeEXT objType,
uint64_t object, size_t tagSize, const void *pTag);
VKAPI_ATTR VkResult VKAPI_CALL
vkDbgSetObjectName(VkDevice device, VkDebugReportObjectTypeEXT objType,
uint64_t object, size_t nameSize, const char *pName);
#endif // VK_NO_PROTOTYPES
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
#endif // __VK_DEBUG_MARKER_H__
@@ -61,7 +61,6 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="official\vk_layer.h" />
<ClInclude Include="official\vk_lunarg_debug_marker.h" />
<ClInclude Include="official\vk_platform.h" />
<ClInclude Include="official\vulkan.h" />
<ClInclude Include="vk_common.h" />
@@ -117,9 +117,6 @@
<ClInclude Include="official\vk_layer.h">
<Filter>official</Filter>
</ClInclude>
<ClInclude Include="official\vk_lunarg_debug_marker.h">
<Filter>official</Filter>
</ClInclude>
<ClInclude Include="official\vk_platform.h">
<Filter>official</Filter>
</ClInclude>
+1 -1
View File
@@ -41,7 +41,6 @@
#define VK_NO_PROTOTYPES
#include "official/vulkan.h"
#include "official/vk_lunarg_debug_marker.h"
#include "api/replay/renderdoc_replay.h"
@@ -301,6 +300,7 @@ enum VulkanChunkType
END_EVENT,
SET_NAME,
SET_SHADER_DEBUG_PATH,
CREATE_SWAP_BUFFER,
+14 -10
View File
@@ -145,11 +145,12 @@ const char *VkChunkNames[] =
"vkCmdDispatch",
"vkCmdDispatchIndirect",
"vkCmdDbgMarkerBegin",
"vkCmdDbgMarker", // no equivalent function at the moment
"vkCmdDbgMarkerEnd",
"vkCmdDebugMarkerBeginEXT",
"vkCmdDebugMarkerInsertEXT",
"vkCmdDebugMarkerEndEXT",
"vkDbgSetObjectName",
"vkDebugMarkerSetObjectNameEXT",
"vkDebugMarkerSetObjectTagEXT",
"vkCreateSwapchainKHR",
@@ -724,8 +725,8 @@ VkResult WrappedVulkan::GetProvidedExtensionProperties(uint32_t *pPropertyCount,
// this is the list of extensions we provide - regardless of whether the ICD supports them
const VkExtensionProperties providedExtensions[] = {
{
DEBUG_MARKER_EXTENSION_NAME,
VK_DEBUG_MARKER_EXTENSION_REVISION
VK_EXT_DEBUG_MARKER_EXTENSION_NAME,
VK_EXT_DEBUG_MARKER_SPEC_VERSION
},
};
@@ -1920,16 +1921,19 @@ void WrappedVulkan::ProcessChunk(uint64_t offset, VulkanChunkType context)
break;
case BEGIN_EVENT:
Serialise_vkCmdDbgMarkerBegin(GetMainSerialiser(), VK_NULL_HANDLE, NULL);
Serialise_vkCmdDebugMarkerBeginEXT(GetMainSerialiser(), VK_NULL_HANDLE, NULL);
break;
case SET_MARKER:
RDCFATAL("No such function vkCmdDbgMarker");
Serialise_vkCmdDebugMarkerInsertEXT(GetMainSerialiser(), VK_NULL_HANDLE, NULL);
break;
case END_EVENT:
Serialise_vkCmdDbgMarkerEnd(GetMainSerialiser(), VK_NULL_HANDLE);
Serialise_vkCmdDebugMarkerEndEXT(GetMainSerialiser(), VK_NULL_HANDLE);
break;
case SET_NAME:
Serialise_vkDbgSetObjectName(GetMainSerialiser(), VK_NULL_HANDLE, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, 0, NULL);
Serialise_vkDebugMarkerSetObjectNameEXT(GetMainSerialiser(), VK_NULL_HANDLE, NULL);
break;
case SET_SHADER_DEBUG_PATH:
Serialise_SetShaderDebugPath(GetMainSerialiser(), VK_NULL_HANDLE, NULL);
break;
case CREATE_SWAP_BUFFER:
+18 -18
View File
@@ -487,6 +487,8 @@ private:
void StartFrameCapture(void *dev, void *wnd);
bool EndFrameCapture(void *dev, void *wnd);
bool Serialise_SetShaderDebugPath(Serialiser *localSerialiser, VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo);
// replay
@@ -1444,28 +1446,26 @@ public:
const char* pLayerPrefix,
const char* pMessage);
// VK_LUNARG_DEBUG_MARKER functions
// VK_EXT_debug_marker functions
IMPLEMENT_FUNCTION_SERIALISED(void, vkCmdDbgMarkerBegin,
IMPLEMENT_FUNCTION_SERIALISED(VkResult, vkDebugMarkerSetObjectTagEXT,
VkDevice device,
VkDebugMarkerObjectTagInfoEXT* pTagInfo);
IMPLEMENT_FUNCTION_SERIALISED(VkResult, vkDebugMarkerSetObjectNameEXT,
VkDevice device,
VkDebugMarkerObjectNameInfoEXT* pNameInfo);
IMPLEMENT_FUNCTION_SERIALISED(void, vkCmdDebugMarkerBeginEXT,
VkCommandBuffer commandBuffer,
const char* pMarker);
VkDebugMarkerMarkerInfoEXT* pMarker);
IMPLEMENT_FUNCTION_SERIALISED(void, vkCmdDbgMarkerEnd,
IMPLEMENT_FUNCTION_SERIALISED(void, vkCmdDebugMarkerEndEXT,
VkCommandBuffer commandBuffer);
IMPLEMENT_FUNCTION_SERIALISED(VkResult, vkDbgSetObjectTag,
VkDevice device,
VkDebugReportObjectTypeEXT objType,
uint64_t object,
size_t tagSize,
const void* pTag);
IMPLEMENT_FUNCTION_SERIALISED(VkResult, vkDbgSetObjectName,
VkDevice device,
VkDebugReportObjectTypeEXT objType,
uint64_t object,
size_t nameSize,
const char* pName);
IMPLEMENT_FUNCTION_SERIALISED(void, vkCmdDebugMarkerInsertEXT,
VkCommandBuffer commandBuffer,
VkDebugMarkerMarkerInfoEXT* pMarker);
// Windowing extension functions
+18 -14
View File
@@ -32,6 +32,7 @@
#undef VK_KHR_surface
#undef VK_KHR_swapchain
#undef VK_EXT_debug_report
#undef VK_EXT_debug_marker
#if defined(VK_USE_PLATFORM_WIN32_KHR)
@@ -229,7 +230,7 @@
CheckExt(VK_EXT_debug_report)
#define CheckDeviceExts() \
CheckExt(VK_LUNARG_DEBUG_MARKER) \
CheckExt(VK_EXT_debug_marker) \
CheckExt(VK_KHR_swapchain)
#define HookInitVulkanInstanceExts() \
@@ -244,10 +245,11 @@
HookInitInstance_PlatformSpecific()
#define HookInitVulkanDeviceExts() \
HookInitExtension(VK_LUNARG_DEBUG_MARKER, CmdDbgMarkerBegin); \
HookInitExtension(VK_LUNARG_DEBUG_MARKER, CmdDbgMarkerEnd); \
HookInitExtension(VK_LUNARG_DEBUG_MARKER, DbgSetObjectTag); \
HookInitExtension(VK_LUNARG_DEBUG_MARKER, DbgSetObjectName); \
HookInitExtension(VK_EXT_debug_marker, DebugMarkerSetObjectTagEXT); \
HookInitExtension(VK_EXT_debug_marker, DebugMarkerSetObjectNameEXT); \
HookInitExtension(VK_EXT_debug_marker, CmdDebugMarkerBeginEXT); \
HookInitExtension(VK_EXT_debug_marker, CmdDebugMarkerEndEXT); \
HookInitExtension(VK_EXT_debug_marker, CmdDebugMarkerInsertEXT); \
HookInitExtension(VK_KHR_swapchain, CreateSwapchainKHR); \
HookInitExtension(VK_KHR_swapchain, DestroySwapchainKHR); \
HookInitExtension(VK_KHR_swapchain, GetSwapchainImagesKHR); \
@@ -387,10 +389,11 @@
HookDefine4(VkResult, vkCreateDebugReportCallbackEXT, VkInstance, instance, const VkDebugReportCallbackCreateInfoEXT*, pCreateInfo, const VkAllocationCallbacks*, pAllocator, VkDebugReportCallbackEXT*, pCallback); \
HookDefine3(void, vkDestroyDebugReportCallbackEXT, VkInstance, instance, VkDebugReportCallbackEXT, callback, const VkAllocationCallbacks*, pAllocator); \
HookDefine8(void, vkDebugReportMessageEXT, VkInstance, instance, VkDebugReportFlagsEXT, flags, VkDebugReportObjectTypeEXT, objectType, uint64_t, object, size_t, location, int32_t, messageCode, const char*, pLayerPrefix, const char*, pMessage); \
HookDefine2(void, vkCmdDbgMarkerBegin, VkCommandBuffer, commandBuffer, const char*, pMarker); \
HookDefine1(void, vkCmdDbgMarkerEnd, VkCommandBuffer, commandBuffer); \
HookDefine5(VkResult, vkDbgSetObjectTag, VkDevice, device, VkDebugReportObjectTypeEXT, objType, uint64_t, object, size_t, tagSize, const void*, pTag); \
HookDefine5(VkResult, vkDbgSetObjectName, VkDevice, device, VkDebugReportObjectTypeEXT, objType, uint64_t, object, size_t, nameSize, const char*, pName); \
HookDefine2(VkResult, vkDebugMarkerSetObjectTagEXT, VkDevice, device, VkDebugMarkerObjectTagInfoEXT*, pTagInfo); \
HookDefine2(VkResult, vkDebugMarkerSetObjectNameEXT, VkDevice, device, VkDebugMarkerObjectNameInfoEXT*, pNameInfo); \
HookDefine2(void, vkCmdDebugMarkerBeginEXT, VkCommandBuffer, commandBuffer, VkDebugMarkerMarkerInfoEXT*, pMarkerInfo); \
HookDefine1(void, vkCmdDebugMarkerEndEXT, VkCommandBuffer, commandBuffer); \
HookDefine2(void, vkCmdDebugMarkerInsertEXT, VkCommandBuffer, commandBuffer, VkDebugMarkerMarkerInfoEXT*, pMarkerInfo); \
HookDefine4(VkResult, vkGetPhysicalDeviceSurfaceSupportKHR, VkPhysicalDevice, physicalDevice, uint32_t, queueFamilyIndex, VkSurfaceKHR, surface, VkBool32*, pSupported); \
HookDefine3(VkResult, vkGetPhysicalDeviceSurfaceCapabilitiesKHR, VkPhysicalDevice, physicalDevice, VkSurfaceKHR, surface, VkSurfaceCapabilitiesKHR*, pSurfaceProperties); \
HookDefine4(VkResult, vkGetPhysicalDeviceSurfaceFormatsKHR, VkPhysicalDevice, physicalDevice, VkSurfaceKHR, surface, uint32_t*, pSurfaceFormatCount, VkSurfaceFormatKHR*, pSurfaceFormats); \
@@ -418,9 +421,10 @@ struct VkLayerDispatchTableExtended : VkLayerDispatchTable
// even though it won't actually ever get used
PFN_vkCreateDevice CreateDevice;
// VK_LUNARG_DEBUG_MARKER
PFN_vkCmdDbgMarkerBegin CmdDbgMarkerBegin;
PFN_vkCmdDbgMarkerEnd CmdDbgMarkerEnd;
PFN_vkDbgSetObjectTag DbgSetObjectTag;
PFN_vkDbgSetObjectName DbgSetObjectName;
// VK_EXT_debug_marker
PFN_vkDebugMarkerSetObjectTagEXT DebugMarkerSetObjectTagEXT;
PFN_vkDebugMarkerSetObjectNameEXT DebugMarkerSetObjectNameEXT;
PFN_vkCmdDebugMarkerBeginEXT CmdDebugMarkerBeginEXT;
PFN_vkCmdDebugMarkerEndEXT CmdDebugMarkerEndEXT;
PFN_vkCmdDebugMarkerInsertEXT CmdDebugMarkerInsertEXT;
};
+2
View File
@@ -308,6 +308,8 @@ struct VulkanCreationInfo
SPVModule spirv;
string unstrippedPath;
struct Reflection
{
string entryPoint;
@@ -2158,13 +2158,19 @@ void WrappedVulkan::vkCmdResetQueryPool(
}
}
bool WrappedVulkan::Serialise_vkCmdDbgMarkerBegin(
bool WrappedVulkan::Serialise_vkCmdDebugMarkerBeginEXT(
Serialiser* localSerialiser,
VkCommandBuffer commandBuffer,
const char* pMarker)
VkDebugMarkerMarkerInfoEXT* pMarker)
{
SERIALISE_ELEMENT(ResourceId, cmdid, GetResID(commandBuffer));
SERIALISE_ELEMENT(string, name, pMarker ? string(pMarker) : "");
SERIALISE_ELEMENT(string, name, pMarker && pMarker->pMarkerName ? string(pMarker->pMarkerName) : "");
float color[4] = {};
if(m_State >= WRITING && pMarker)
memcpy(color, pMarker->color, sizeof(color));
localSerialiser->SerialisePODArray<4>("color", color);
if(m_State < WRITING)
m_LastCmdBufferID = cmdid;
@@ -2181,12 +2187,12 @@ bool WrappedVulkan::Serialise_vkCmdDbgMarkerBegin(
return true;
}
void WrappedVulkan::vkCmdDbgMarkerBegin(
void WrappedVulkan::vkCmdDebugMarkerBeginEXT(
VkCommandBuffer commandBuffer,
const char* pMarker)
VkDebugMarkerMarkerInfoEXT* pMarker)
{
if(ObjDisp(commandBuffer)->CmdDbgMarkerBegin)
ObjDisp(commandBuffer)->CmdDbgMarkerBegin(Unwrap(commandBuffer), pMarker);
if(ObjDisp(commandBuffer)->CmdDebugMarkerBeginEXT)
ObjDisp(commandBuffer)->CmdDebugMarkerBeginEXT(Unwrap(commandBuffer), pMarker);
if(m_State >= WRITING)
{
@@ -2195,13 +2201,13 @@ void WrappedVulkan::vkCmdDbgMarkerBegin(
CACHE_THREAD_SERIALISER();
SCOPED_SERIALISE_CONTEXT(BEGIN_EVENT);
Serialise_vkCmdDbgMarkerBegin(localSerialiser, commandBuffer, pMarker);
Serialise_vkCmdDebugMarkerBeginEXT(localSerialiser, commandBuffer, pMarker);
record->AddChunk(scope.Get());
}
}
bool WrappedVulkan::Serialise_vkCmdDbgMarkerEnd(Serialiser* localSerialiser, VkCommandBuffer commandBuffer)
bool WrappedVulkan::Serialise_vkCmdDebugMarkerEndEXT(Serialiser* localSerialiser, VkCommandBuffer commandBuffer)
{
SERIALISE_ELEMENT(ResourceId, cmdid, GetResID(commandBuffer));
@@ -2231,11 +2237,11 @@ bool WrappedVulkan::Serialise_vkCmdDbgMarkerEnd(Serialiser* localSerialiser, VkC
return true;
}
void WrappedVulkan::vkCmdDbgMarkerEnd(
void WrappedVulkan::vkCmdDebugMarkerEndEXT(
VkCommandBuffer commandBuffer)
{
if(ObjDisp(commandBuffer)->CmdDbgMarkerEnd)
ObjDisp(commandBuffer)->CmdDbgMarkerEnd(Unwrap(commandBuffer));
if(ObjDisp(commandBuffer)->CmdDebugMarkerEndEXT)
ObjDisp(commandBuffer)->CmdDebugMarkerEndEXT(Unwrap(commandBuffer));
if(m_State >= WRITING)
{
@@ -2244,7 +2250,56 @@ void WrappedVulkan::vkCmdDbgMarkerEnd(
CACHE_THREAD_SERIALISER();
SCOPED_SERIALISE_CONTEXT(END_EVENT);
Serialise_vkCmdDbgMarkerEnd(localSerialiser, commandBuffer);
Serialise_vkCmdDebugMarkerEndEXT(localSerialiser, commandBuffer);
record->AddChunk(scope.Get());
}
}
bool WrappedVulkan::Serialise_vkCmdDebugMarkerInsertEXT(
Serialiser* localSerialiser,
VkCommandBuffer commandBuffer,
VkDebugMarkerMarkerInfoEXT* pMarker)
{
SERIALISE_ELEMENT(ResourceId, cmdid, GetResID(commandBuffer));
SERIALISE_ELEMENT(string, name, pMarker && pMarker->pMarkerName ? string(pMarker->pMarkerName) : "");
float color[4] = {};
if(m_State >= WRITING && pMarker)
memcpy(color, pMarker->color, sizeof(color));
localSerialiser->SerialisePODArray<4>("color", color);
if(m_State < WRITING)
m_LastCmdBufferID = cmdid;
if(m_State == READING)
{
FetchDrawcall draw;
draw.name = name;
draw.flags |= eDraw_SetMarker;
AddDrawcall(draw, false);
}
return true;
}
void WrappedVulkan::vkCmdDebugMarkerInsertEXT(
VkCommandBuffer commandBuffer,
VkDebugMarkerMarkerInfoEXT* pMarker)
{
if(ObjDisp(commandBuffer)->CmdDebugMarkerInsertEXT)
ObjDisp(commandBuffer)->CmdDebugMarkerInsertEXT(Unwrap(commandBuffer), pMarker);
if(m_State >= WRITING)
{
VkResourceRecord *record = GetRecord(commandBuffer);
CACHE_THREAD_SERIALISER();
SCOPED_SERIALISE_CONTEXT(SET_MARKER);
Serialise_vkCmdDebugMarkerInsertEXT(localSerialiser, commandBuffer, pMarker);
record->AddChunk(scope.Get());
}
@@ -543,7 +543,7 @@ bool WrappedVulkan::Serialise_vkCreateDevice(
for(uint32_t i=0; i < createInfo.enabledExtensionCount; i++)
{
// don't include the debug marker extension
if(strcmp(createInfo.ppEnabledExtensionNames[i], DEBUG_MARKER_EXTENSION_NAME))
if(strcmp(createInfo.ppEnabledExtensionNames[i], VK_EXT_DEBUG_MARKER_EXTENSION_NAME))
Extensions.push_back(createInfo.ppEnabledExtensionNames[i]);
}
@@ -798,21 +798,6 @@ void WrappedVulkan::vkDebugReportMessageEXT(
return ObjDisp(instance)->DebugReportMessageEXT(Unwrap(instance), flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
}
VkResult WrappedVulkan::vkDbgSetObjectTag(
VkDevice device,
VkDebugReportObjectTypeEXT objType,
uint64_t object,
size_t tagSize,
const void* pTag)
{
if(ObjDisp(device)->DbgSetObjectTag)
ObjDisp(device)->DbgSetObjectTag(device, objType, object, tagSize, pTag);
// don't do anything with the tags
return VK_SUCCESS;
}
static VkResourceRecord *GetObjRecord(VkDebugReportObjectTypeEXT objType, uint64_t object)
{
switch(objType)
@@ -880,19 +865,63 @@ static VkResourceRecord *GetObjRecord(VkDebugReportObjectTypeEXT objType, uint64
return NULL;
}
bool WrappedVulkan::Serialise_vkDbgSetObjectName(
bool WrappedVulkan::Serialise_SetShaderDebugPath(
Serialiser *localSerialiser,
VkDevice device,
VkDebugReportObjectTypeEXT objType,
uint64_t object,
size_t nameSize,
const char* pName)
VkDebugMarkerObjectTagInfoEXT* pTagInfo)
{
SERIALISE_ELEMENT(ResourceId, id, GetObjRecord(objType, object)->GetResourceID());
SERIALISE_ELEMENT(ResourceId, id, GetObjRecord(pTagInfo->objectType, pTagInfo->object)->GetResourceID());
string path;
if(m_State >= WRITING)
{
char *tag = (char *)pTagInfo->pTag;
path = string(tag, tag + pTagInfo->tagSize);
}
localSerialiser->Serialise("path", path);
if(m_State == READING)
{
m_CreationInfo.m_ShaderModule[GetResourceManager()->GetLiveID(id)].unstrippedPath = path;
}
return true;
}
VkResult WrappedVulkan::vkDebugMarkerSetObjectTagEXT(
VkDevice device,
VkDebugMarkerObjectTagInfoEXT* pTagInfo)
{
if(pTagInfo && pTagInfo->tagName == RENDERDOC_ShaderDebugMagicValue_truncated &&
pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT)
{
VkResourceRecord *record = GetObjRecord(pTagInfo->objectType, pTagInfo->object);
CACHE_THREAD_SERIALISER();
SCOPED_SERIALISE_CONTEXT(SET_SHADER_DEBUG_PATH);
Serialise_SetShaderDebugPath(localSerialiser, device, pTagInfo);
record->AddChunk(scope.Get());
}
else if(ObjDisp(device)->DebugMarkerSetObjectTagEXT)
{
return ObjDisp(device)->DebugMarkerSetObjectTagEXT(device, pTagInfo);
}
return VK_SUCCESS;
}
bool WrappedVulkan::Serialise_vkDebugMarkerSetObjectNameEXT(
Serialiser *localSerialiser,
VkDevice device,
VkDebugMarkerObjectNameInfoEXT* pNameInfo)
{
SERIALISE_ELEMENT(ResourceId, id, GetObjRecord(pNameInfo->objectType, pNameInfo->object)->GetResourceID());
string name;
if(m_State >= WRITING)
name = string(pName, pName+nameSize);
name = pNameInfo->pObjectName;
localSerialiser->Serialise("name", name);
@@ -902,25 +931,22 @@ bool WrappedVulkan::Serialise_vkDbgSetObjectName(
return true;
}
VkResult WrappedVulkan::vkDbgSetObjectName(
VkResult WrappedVulkan::vkDebugMarkerSetObjectNameEXT(
VkDevice device,
VkDebugReportObjectTypeEXT objType,
uint64_t object,
size_t nameSize,
const char* pName)
VkDebugMarkerObjectNameInfoEXT* pNameInfo)
{
if(ObjDisp(device)->DbgSetObjectName)
ObjDisp(device)->DbgSetObjectName(device, objType, object, nameSize, pName);
if(ObjDisp(device)->DebugMarkerSetObjectNameEXT)
ObjDisp(device)->DebugMarkerSetObjectNameEXT(device, pNameInfo);
if(m_State >= WRITING)
{
Chunk *chunk = NULL;
VkResourceRecord *record = GetObjRecord(objType, object);
VkResourceRecord *record = GetObjRecord(pNameInfo->objectType, pNameInfo->object);
if(!record)
{
RDCERR("Unrecognised object %d %llu", objType, object);
RDCERR("Unrecognised object %d %llu", pNameInfo->objectType, pNameInfo->object);
return VK_SUCCESS;
}
@@ -928,7 +954,7 @@ VkResult WrappedVulkan::vkDbgSetObjectName(
CACHE_THREAD_SERIALISER();
SCOPED_SERIALISE_CONTEXT(SET_NAME);
Serialise_vkDbgSetObjectName(localSerialiser, device, objType, object, nameSize, pName);
Serialise_vkDebugMarkerSetObjectNameEXT(localSerialiser, device, pNameInfo);
chunk = scope.Get();
}