I'm developing GPU skin system for skeletal meshes. In my implementation final pose for skinning is calculated on CPU side. Question is how to organize skin joint transformation data upload in Vulkan? I mean in Vulkan the developer MUST control situation that resource is valid at the moment of GPU access. Keeping in mind that GPU is async device. It always works in the past from CPU perspective.
I aim to use VkBuffer to upload my skin joint information. What does industry usually do to:
- To not consume too much VRAM memory for joint information
- Synchronize upload/skin GPU job properly
- Correctly stop and destroy all resources (for example at application exit)
Thanks.