We had a long outstanding problem in amdgpu that buffers exported to user drivers by DMA-buf serialize all command submissions using them. In other words we can't compose the buffer with different engines and then send it to another driver for display further processing. This was added to work around the fact that i915 didn't wanted to wait for shared fences in the dma_resv objects before displaying a buffer. Since this problem is now causing issues with Vulkan we need to find a better solution for that. The patch set here tries to do this by adding an usage flag to the shared fences noting when and how they should participate in implicit synchronization. Please review and/or comment, Christian.