Relationship of queues between passes (question)
Closed this issue · 2 comments
What is the relationship between the queues of the passes?
I'm trying to create a mesh that is used in multiple passes, but mesh build requires a QueueId.
In the example node_queue is used to get this id.
As I understand each node has it's own queue, so how can I share the resources between the passes ?
Or is it enough to create my own "queue" for the same QueueFamily, but how, I couldn't find the function for this. An in this case how can I handle the synchronization between uploads and uses ?
@zpgaal nodes shares queues. In fact, in many simple cases there will be only one queue.
You can share loaded mesh (any buffers or images in general) between nodes that are executed on the different queues from same queue family.
MeshBuilder::build
takes QueueId
because of synchronization requirements - it will record copy command and add pipeline barrier to make loaded mesh data visible to other commands executed on the same queue.
To make them visible from other queues you'd need more complex synchronization which is not implemented yet, but planned.
You can't create queues. All queues are created during Factory
creation.