Re: [PATCH 2/2] dma-buf: Add an API for importing sync files (v9)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday, May 6th, 2022 at 20:02, Jason Ekstrand <jason@xxxxxxxxxxxxxx> wrote:

> diff --git a/include/uapi/linux/dma-buf.h b/include/uapi/linux/dma-buf.h
> index 46f1e3e98b02..70e213a0d7d9 100644
> --- a/include/uapi/linux/dma-buf.h
> +++ b/include/uapi/linux/dma-buf.h
> @@ -96,6 +96,24 @@ struct dma_buf_sync {
>   * dma-buf for waiting later instead of waiting immediately.  This is
>   * useful for modern graphics APIs such as Vulkan which assume an explicit
>   * synchronization model but still need to inter-operate with dma-buf.
> + *
> + * The intended usage pattern is the following:
> + *
> + *  1. Export a sync_file with flags corresponding to the expected GPU usage
> + *     via DMA_BUF_IOCTL_EXPORT_SYNC_FILE.
> + *
> + *  2. Submit rendering work which uses the dma-buf.  The work should wait on
> + *     the exported sync file before rendering and produce another sync_file
> + *     when complete.
> + *
> + *  3. Import the rendering-complete sync_file into the dma-buf with flags
> + *     corresponding to the GPU usage via DMA_BUF_IOCTL_EXPORT_SYNC_FILE.

This should read DMA_BUF_IOCTL_IMPORT_SYNC_FILE I think?

> + * Unlike doing implicit synchronization via a GPU kernel driver's exec ioctl,
> + * the above is not a single atomic operation.  If userspace wants to ensure
> + * ordering via these fences, it is the respnosibility of userspace to use
> + * locks or other mechanisms to ensure that no other context adds fences or
> + * submits work between steps 1 and 3 above.
>   */
>  struct dma_buf_export_sync_file {
>  	/**




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux