in Vulkan, after mapping your vertex buffers to host-visible memory, you could create command buffers for each which signal fences to tell the game they're ready to draw with, and submit them on every other queue not being used for rendering. on my GPU that'd be possibly 18 parallel queues just for uploads 👀