This directory contains all the P2P demos.

amd/
- This directory contains AMD P2P applications written in Vulkan.

amd-multi-thread/
- This directory contains multithreading AMD P2P applications written in Vulkan.

p2p_gl/
- This directory contains a P2P demo written in OpenGL.
- Quadra mallocs the buffer and sends the dma_buf fd to GPU.
- Then, GPU initiates DMA to write data to the Quadra card.

p2p_read_gbm_egl/
- This directory contains a P2P demo written in OpenGL.
- GPU mallocs the buffer and sends the dma_buf fd to Quadra.
- Then, Qudara initiates DMA to read data from GPU.

p2p_read_gbm_egl_multithread/
- This directory contains a multithreading P2P demo written in OpenGL.
- It extends p2p_read_gbm_egl/ with multithreading capability.
- GPU mallocs the buffer and sends the dma_buf fd to Quadra. 
- Then, Qudara initiates DMA to read data from GPU.

nvidia_p2p_read/
- This directory contains an unidirectional P2P demo from Nvidia GPU to Quadra using CUDA.
- GPU allocates device memory for raw video frames and exports the dma_buf fd to Quadra.
- GPU fills the buffer with raw argb video frames, Quarda card reads the buffer with P2P read.
- Quadra then encodes the frame and send it to host.
- NOTE: Quadra to Nvidia dma-buf p2p is currently unsupported due to Nvidia software restrictions.
