On 2019年08月02日 17:41, Lionel Landwerlin
wrote:
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?
vkQueueSubmit()
vkWaitForFenceAvailable()
vkQueueSubmit()
vkWaitForFenceAvailable()
vkQueueSubmit()
vkWaitForFenceAvailable()
Sorry, that could lead application program very ugly.
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.
Will you raise up a MR to add the language of waitBeforeSignal
support of binary semaphore to vulkan spec?
-David
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