Memory Vulkan,我需要什么时候从VK_*结构中释放内存

Memory Vulkan,我需要什么时候从VK_*结构中释放内存,memory,memory-management,vulkan,Memory,Memory Management,Vulkan,愚蠢的问题,对不起 第一个问题 void init_something(...){ VkTypeSomething data[100]; VkResourceStruct resource={... .pointer_data=data}; VkCreateSomething(... , resource); //isit safe? resource[] is not lost? } void vk_clean(...){ VkDestroySomething

愚蠢的问题,对不起

第一个问题

void init_something(...){
    VkTypeSomething data[100];
    VkResourceStruct resource={... .pointer_data=data};
    VkCreateSomething(... , resource); //isit safe? resource[] is not lost?
}

void vk_clean(...){
    VkDestroySomething_that_use_resource(...);
    // free resource?
}
第二个问题

void init_something(...){
    VkTypeSomething data[100];
    VkResourceStruct resource={... .pointer_data=data};
    VkCreateSomething(... , resource); //isit safe? resource[] is not lost?
}

void vk_clean(...){
    VkDestroySomething_that_use_resource(...);
    // free resource?
}
相同的代码,更改
VkTypeSomething*数据
数据=malloc(…)(无自由输入功能)

当我需要释放数据时,如果我对它进行malloc,我需要释放它吗

Vulkan页面告诉我们“VkDestroy上的结构被破坏…调用”和“VkDestroy…必须在调用的结构中有有效的POINTERS”,所以在调用之前无法释放它(我知道它不能像这样工作)

所以没有办法在某个地方创建的结构中获取指针。。。在VkDestroy之后,我是否需要保存所有创建的指针并自行释放它们

看起来我明白了,但还是不确定
据我所知,它的“VkCreate…仅使用设置数据一次”和在调用VkCreate后删除所有内容是安全的。。。它是真的吗?Vulkan句柄由
vkCreate*
创建,并由
vkDestroy*
销毁。它们与任何结构无关。我不确定您的自定义
VkCreate*
是什么或做什么,因此这超出了Vulkan的范围


您是所有结构的所有者。通常,Vulkan仅在函数调用期间借用它们(Vulkan规范):

应用程序拥有的内存的所有权会立即通过传递给它的任何Vulkan命令获得。此类内存的所有权必须在命令持续时间结束时释放回应用程序,以便应用程序可以在获取该内存的所有命令返回后更改或释放该内存


“Vulkan只在函数调用期间借用它们(Vulkan规范):”-这就是我需要知道的,谢谢