[Mesa-dev] [PATCH 2/9] anv: Add a real semaphore struct

Chris Wilson chris at chris-wilson.co.uk
Tue Feb 28 21:59:18 UTC 2017


On Tue, Feb 28, 2017 at 08:56:40AM -0800, Jason Ekstrand wrote:
> It's just a dummy for now, but we'll flesh it out as needed for external
> semaphores.
> ---
>  src/intel/vulkan/anv_private.h | 15 +++++++++++++++
>  src/intel/vulkan/anv_queue.c   | 30 ++++++++++++++++++++++++------
>  2 files changed, 39 insertions(+), 6 deletions(-)
> 
> diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
> index 816ee8a..a2e077a 100644
> --- a/src/intel/vulkan/anv_private.h
> +++ b/src/intel/vulkan/anv_private.h
> @@ -1365,6 +1365,20 @@ struct anv_event {
>     struct anv_state                             state;
>  };
>  
> +enum anv_semaphore_type {
> +   ANV_SEMAPHORE_TYPE_NONE = 0,
> +   ANV_SEMAPHORE_TYPE_DUMMY
> +};
> +
> +struct anv_semaphore_impl {
> +   enum anv_semaphore_type type;
> +};
> +
> +struct anv_semaphore {
> +   struct anv_semaphore_impl permanent;
> +   struct anv_semaphore_impl temporary;
> +};

Are temporary, permanent terms from the Vk spec? 

My understanding is that the temporary semaphore is a snapshot of the
fences (sync_file), used once then reset. The permanent semaphore is a
reservation_object (accessed via a bo), it is a volatile collection of
fences that serves as a communication channel between processes.

A synopsis of the differences and use would be invaluable.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the mesa-dev mailing list