Всякий раз, когда объект в Вулкане разрушается, и 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 проверочные слои.
Других решений пока нет …