Vulkan:转储当前分配的对象?
Vulkan: dump currently allocated objects?
每当 Vulkan 中的对象被销毁并启用 VK_LAYER_LUNARG_object_tracker
层并安装调试报告时,它会报告销毁调用并通过回调给出剩余对象的总数。例如:
INFO: [OBJTRACK]: OBJ_STAT Destroy VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT obj 0xcf43130 (217 total objs remain & 1 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT objs).
有什么方法可以获取有关仍在分配的对象的信息吗?
编辑:
检查 object_tracker 层 (https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/layers/object_tracker.h) 的源代码,似乎有 objTrackGetObjectsOfTypeCount
的原型,但它们似乎并没有在任何地方实现。此功能是否可以通过某种方式访问?
Vulkan 以最小的驱动程序开销构建,因此驱动程序尽可能少地执行操作,并且没有此类内置功能。
获取有关现有对象的信息的唯一方法是自己跟踪对象或编写一个层来为您完成。
似乎没有任何现有的图层具有这样的功能。
要编写验证层,您可能需要查看现有的 Vulkan validation layers.
每当 Vulkan 中的对象被销毁并启用 VK_LAYER_LUNARG_object_tracker
层并安装调试报告时,它会报告销毁调用并通过回调给出剩余对象的总数。例如:
INFO: [OBJTRACK]: OBJ_STAT Destroy VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT obj 0xcf43130 (217 total objs remain & 1 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT objs).
有什么方法可以获取有关仍在分配的对象的信息吗?
编辑:
检查 object_tracker 层 (https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/layers/object_tracker.h) 的源代码,似乎有 objTrackGetObjectsOfTypeCount
的原型,但它们似乎并没有在任何地方实现。此功能是否可以通过某种方式访问?
Vulkan 以最小的驱动程序开销构建,因此驱动程序尽可能少地执行操作,并且没有此类内置功能。 获取有关现有对象的信息的唯一方法是自己跟踪对象或编写一个层来为您完成。
似乎没有任何现有的图层具有这样的功能。 要编写验证层,您可能需要查看现有的 Vulkan validation layers.