Hey David,
On 02/08/2019 12:11, zhoucm1 wrote:
Hi Lionel,
For binary semaphore, I guess every one will think application
will guarantee wait is behind the signal, whenever the semaphore
is shared or used in internal-process.
I think below two options can fix your problem:
a. Can we extend vkWaitForFence so that it can be able to wait
on fence-available? If fence is available, then it's safe to do
semaphore wait in vkQueueSubmit.
I'm sorry, but I don't understand what vkWaitForFence() has to do
with this problem.
They test case we're struggling with doesn't use that API.
Can you maybe explain a bit more how it relates?
b. Make waitBeforeSignal is valid for binary semaphore as well,
as that way, It is reasonable to add wait/signal counting for
binary syncobj.
Yeah essentially the change we're proposing internally makes
binary semaphores use syncobj timelines.
There is just another u64 associated with them.
-Lionel
-David
On 2019年08月02日 14:27, Lionel
Landwerlin wrote:
On 02/08/2019 09:10, Koenig,
Christian wrote:
And who says that it's not waiting for it's
own previous payload?
That's was I understood from you previous comment : "there is
no guarantee that ctx2 will run in between jobs"
See if the payload is a counter this won't
work either. Keep in mind that this has the semantic of a
semaphore. Whoever grabs the semaphore first wins and can
run, everybody else has to wait.
What performs the "grab" here?
I thought that would be vkQueueSubmit().
Since that occuring from a single application thread, that
should then be ordered in execution of ctx1,ctx2,ctx1,...
Thanks for your time on this,
-Lionel
That's an implementation detail of our sync
objects, but I don't think that this behavior is part of
the Vulkan specification.
Regards,
Christian.
|
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel