mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 13:38:06 +02:00
anv/wsi: signal the semaphore in the acquireNextImage
We seem to have forgotten about the semaphore in the
acquireNextImageInfo.
v2: Signal semaphore/fence regardless of presentation status (Jason)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
(cherry picked from commit edc6606d4e)
This commit is contained in:
parent
4910128bab
commit
35c196025b
1 changed files with 20 additions and 4 deletions
|
|
@ -247,12 +247,28 @@ VkResult anv_AcquireNextImage2KHR(
|
|||
pAcquireInfo,
|
||||
pImageIndex);
|
||||
|
||||
/* Thanks to implicit sync, the image is ready immediately. However, we
|
||||
* should wait for the current GPU state to finish.
|
||||
/* Thanks to implicit sync, the image is ready immediately. However, we
|
||||
* should wait for the current GPU state to finish. Regardless of the
|
||||
* result of the presentation, we need to signal the semaphore & fence.
|
||||
*/
|
||||
|
||||
if (pAcquireInfo->semaphore != VK_NULL_HANDLE) {
|
||||
/* Put a dummy semaphore in temporary, this is the fastest way to avoid
|
||||
* any kind of work yet still provide some kind of synchronization. This
|
||||
* only works because the Mesa WSI code always returns an image
|
||||
* immediately if available.
|
||||
*/
|
||||
ANV_FROM_HANDLE(anv_semaphore, semaphore, pAcquireInfo->semaphore);
|
||||
anv_semaphore_reset_temporary(device, semaphore);
|
||||
|
||||
struct anv_semaphore_impl *impl = &semaphore->temporary;
|
||||
|
||||
impl->type = ANV_SEMAPHORE_TYPE_DUMMY;
|
||||
}
|
||||
|
||||
if (pAcquireInfo->fence != VK_NULL_HANDLE) {
|
||||
anv_QueueSubmit(anv_queue_to_handle(&device->queue), 0, NULL,
|
||||
pAcquireInfo->fence);
|
||||
result = anv_QueueSubmit(anv_queue_to_handle(&device->queue),
|
||||
0, NULL, pAcquireInfo->fence);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue