While writing qml graph renderer + RenderExtension, I’ve encountered quite a few cases where a qml-scene-graph node/sub-graph is rendered to a texture to be later rendered by another scene-graph-node with a specific effect ( animation, shaders ). Now potentially this might create a DAG of dependencies between scene graph nodes.
The Qt’s D3D12 scene-graph example is pretty involved, but from what I’ve managed to decode, they use various texture memory barriers/fences and multiple command queues.
To the question then: How can I ensure that one of the dependent textures have already been rendered, should I force a
swapBuffers calls on them in order ? Or should I split the graph into multiple CommandBuffers and use CommandSyncMask to encode the dependencies ?