[PATCH] drm/syncobj: add sync obj wait interface. (v6)

Christian König deathsimple at vodafone.de
Mon Jul 10 16:15:38 UTC 2017


Am 10.07.2017 um 17:52 schrieb Jason Ekstrand:
> On Mon, Jul 10, 2017 at 8:45 AM, Christian König 
> <deathsimple at vodafone.de <mailto:deathsimple at vodafone.de>> wrote:
>
>     Am 10.07.2017 um 17:28 schrieb Jason Ekstrand:
>>     On Wed, Jul 5, 2017 at 6:04 PM, Dave Airlie <airlied at gmail.com
>>     <mailto:airlied at gmail.com>> wrote:
>>     [SNIP]
>>     So, reading some CTS tests again, and I think we have a problem
>>     here.  The Vulkan spec allows you to wait on a fence that is in
>>     the unsignaled state.
>
>     At least on the closed source driver that would be illegal as far
>     as I know.
>
>
> Then they are doing workarounds in userspace.  There are definitely 
> CTS tests for this:
>
> https://github.com/KhronosGroup/VK-GL-CTS/blob/master/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationBasicFenceTests.cpp#L74
>
>     You can't wait on a semaphore before the signal operation is send
>     down to the kerel.
>
>
> We (Intel) deal with this today by tracking whether or not the fence 
> has been submitted and using a condition variable in userspace to sort 
> it all out.

Which sounds exactly like what AMD is doing in it's drivers as well.

> If we ever want to share fences across processes (which we do), then 
> this needs to be sorted in the kernel.

That would clearly get a NAK from my side, even Microsoft forbids wait 
before signal because you can easily end up in deadlock situations.

Regards,
Christian.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20170710/4334a7c0/attachment.html>


More information about the dri-devel mailing list