On 11 April 2017 at 22:42, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote: > On Tue, Apr 11, 2017 at 01:22:20PM +1000, Dave Airlie wrote: >> +static int amdgpu_sem_lookup_and_sync(struct amdgpu_cs_parser *p, >> + uint32_t handle) >> +{ >> + int r; >> + struct dma_fence *old_fence; >> + >> + r = drm_syncobj_swap_fences(p->filp, handle, NULL, &old_fence); >> + if (r) >> + return r; > > I'm a bit puzzled over this interface as this means that all > in-semaphores are not reusable. That seems a bit odd as it means > userspace can't use the results from one engine on two+ parallel > engines. Searching kronos for VkSemaphore > https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphore.html > isn't enlightening... You need to look in the vulkan spec itself. But yes this is the semantics, vulkan semaphores are explicitly 1:1 objects. One wait must have one signal. It's a semaphore not a fence, so you can't have multiple engines getting the results from one semaphore. Dave. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel