2016-05-20 Christian König <deathsimple at vodafone.de>:

> From: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
> 
> struct fence_collection inherits from struct fence and carries a
> collection of fences that needs to be waited together.
> 
> It is useful to translate a sync_file to a fence to remove the complexity
> of dealing with sync_files on DRM drivers. So even if there are many
> fences in the sync_file that needs to waited for a commit to happen,
> they all get added to the fence_collection and passed for DRM use as
> a standard struct fence.
> 
> That means that no changes needed to any driver besides supporting fences.
> 
> fence_collection's fence doesn't belong to any timeline context, so
> fence_is_later() and fence_later() are not meant to be called with
> fence_collections fences.
> 
> v2: Comments by Daniel Vetter:
>       - merge fence_collection_init() and fence_collection_add()
>       - only add callbacks at ->enable_signalling()
>       - remove fence_collection_put()
>       - check for type on to_fence_collection()
>       - adjust fence_is_later() and fence_later() to WARN_ON() if they
>       are used with collection fences.
> 
> v3: - Initialize fence_cb.node at fence init.
> 
>     Comments by Chris Wilson:
>       - return "unbound" on fence_collection_get_timeline_name()
>       - don't stop adding callbacks if one fails
>       - remove redundant !! on fence_collection_enable_signaling()
>       - remove redundant () on fence_collection_signaled
>       - use fence_default_wait() instead
> 
> v4 (chk): Rework, simplification and cleanup:
>       - Drop FENCE_NO_CONTEXT handling, always allocate a context.
>       - Rename to fence_array.
>       - Return fixed driver name.
>       - Register only one callback at a time.
>       - Document that create function takes ownership of array.

This looks good to me. Dropping NO_CONTEXT was a good idea, also
registering only one callback makes it looks better.

        Gustavo

Reply via email to