Hi Lionel,
Well that looks more like your test case is buggy.
According to the code the ctx1 queue always waits for sem1 and ctx2 queue always waits for sem2.
This way there can't be any Synchronisation between the two.
Regards,
Christian.
Am 02.08.2019 06:55 schrieb Lionel Landwerlin <lionel.g.landwerlin@xxxxxxxxx>:
Hey Christian,
The problem boils down to the fact that we don't immediately create dma fences when calling vkQueueSubmit().
This is delayed to a thread.
From a single application thread, you can QueueSubmit() to 2 queues from 2 different devices.
Each QueueSubmit to one queue has a dependency on the previous QueueSubmit on the other queue through an exported/imported semaphore.
From the API point of view the state of the semaphore should be changed after each QueueSubmit().
The problem is that it's not because of the thread and because you might have those 2 submission threads tied to different VkDevice/VkInstance or even different applications (synchronizing themselves outside the vulkan API).
Hope that makes sense.
It's not really easy to explain by mail, the best explanation is probably reading the test :
https://gitlab.freedesktop.org/mesa/crucible/blob/master/src/tests/func/sync/semaphore-fd.c#L788
Like David mentioned you're not running into that issue right now, because you only dispatch to the thread under specific conditions.
But I could build a case to force that and likely run into the same issue.
-Lionel
On 02/08/2019 07:33, Koenig, Christian wrote:
|
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel