When an application calls a Vulkan API command, in some cases there are pointers to memory owned by the application passed. Does Vulkan ever store such a pointer passed to it? How do you know?
For example, let's take the vkCmdWaitEvents command. I pass a pEvents pointer to an array of VkEvent. Immediately after vkCmdWaitEvents returns, can I delete that array? Or do I have to wait until that wait has been executed and the enclosing CommandBuffer has been destroyed? ie does vulkan take a copy of the array, or does it just store a pointer to the first element of the array? How do you know which?