В собственном приложении android, когда я вызываю:
vkDestroyDevice( vk.device, VK_ALLOCATOR )
У меня ошибка Ошибка: [Проверка] Код 614466292 X объект 0xffffffffd3bcb900 не был уничтожен (... ).
Но я вызвал vkDestroy (Object) для каждого из объектов. (изображение, изображение, конвейер и т. д. c)
Вот один объект создания / уничтожения:
static void create_shader_module(const unsigned char* pBytes, const int count, VkShaderModule* pVkShaderMod) {
VkShaderModuleCreateInfo desc;
desc.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
desc.pNext = NULL;
desc.flags = 0;
desc.codeSize = count;
desc.pCode = (const uint32_t*)pBytes;
VK(vkCreateShaderModule(vk.device, &desc, NULL, pVkShaderMod));
}
extern unsigned char multiview_single_texture_vert_spv[];
extern int multiview_single_texture_vert_spv_size;
create_shader_module(multiview_single_texture_vert_spv, multiview_single_texture_vert_spv_size, &s_gShaderModules.single_texture_vs);
И для части уничтожения:
vkDestroyShaderModule(vk.device, s_gShaderModules.single_texture_vs, NULL);
Когда я вызываю vkDestroyShaderModule, vk.device все еще активен, и у меня нет ошибки. Но как только я вызываю vkDestroyDevice (), у меня появляется ошибка:
ОШИБКА OBJ: Для устройства 0xeb0ac330 объект ShaderModule 0xffffffffeb0c6240 не был уничтожен. Текст spe c допустимого использования гласит: «Все дочерние объекты, созданные на устройстве, должны быть уничтожены до уничтожения устройства»
Освобождение памяти структуры с помощью memset (& s_gShaderModules, 0, sizeof (s_gShaderModules)) ; не решает проблему.
Ошибка на устройстве android, к сожалению, я не могу протестировать приложение на другом устройстве. Все остальное в приложении работает, я даже уничтожаю и воссоздаю некоторые объекты во время выполнения без ошибок, кроме приложения cra sh при выходе.