Reading Packets

Upon obtaining a packet, the consumer must wait until the contents are ready before reading from it. Any synchronous elements can be accessed right away. For all other elements, it must wait for the fences provided.

If it reads from the buffers using NVIDIA API, it must use the appropriate API-specific operation to insert a wait for each of the fences into the hardware command sequence. Then it can look up the API-specific buffer handles for the packet and make those buffers the current read sources. It can then issue commands that use the data.

If the application reads directly from the buffer memory, it must perform a CPU wait for all of the fences in the array. Then it can read the new data.