Hi,
Let's assume I commit 2 CommandBuffers to the same CommandQueue:
- The 1st buffer contains a render pass
- The 2nd buffer contains a compute pass.
I used enqueue() to make sure the buffers would run in that order.
Will the GPU wait for the end of the render pass (1) before to run the compute pass (2)? Or will it run them concurrently?
I am asking because while porting our game to iOS we ran into flickering artefacts. We took a capture and it seems 2 passes with dependencies are running concurently (see screenshot). Yet, they belong to separate command buffers.
Do I need to add MTLEvent to prevent this from happening? I thought there was no need for dependency tracking between command buffers running on the same queue.
Thank you for your help.