Vulkan:转储当前分配的对象

Vulkan: dump currently allocated objects?

本文关键字:分配 对象 转储 Vulkan      更新时间:2023-10-16

每当 Vulkan 中的对象被销毁,并且启用了VK_LAYER_LUNARG_object_tracker层并安装了调试报告时,它将报告 destroy 调用并通过回调给出剩余对象的总数。例如:

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 验证层。