mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-01 06:50:22 +01:00
vulkan/wsi/sw: wait for image fence before submitting to queue
With hw devices, when you submit a present, implicit sync will make sure the work submitted to the gpu on the client will end up happening before the present work submitted on the server. However with sw paths there is no real GPU, the lavapipe fake GPU thread is client side only and presenting is done directly from the pixmap (or later shared pixmap). In order for this to make sense the wsi common code should wait for the fence on the image before queueing the submit to the server so that all client works has been flushed to the pixmap before the copy or present operation is submitted. Fixes:8004fa9c95("vulkan/wsi: add sw support. (v2)") Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12502> (cherry picked from commit0cddfba328)
This commit is contained in:
parent
56f21793de
commit
cc3e149f80
2 changed files with 5 additions and 1 deletions
|
|
@ -463,7 +463,7 @@
|
|||
"description": "vulkan/wsi/sw: wait for image fence before submitting to queue",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "8004fa9c9501d91669ac51d32c9a9143286ca7ea"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -653,6 +653,10 @@ wsi_common_queue_present(const struct wsi_device *wsi,
|
|||
if (result != VK_SUCCESS)
|
||||
goto fail_present;
|
||||
|
||||
if (wsi->sw)
|
||||
wsi->WaitForFences(device, 1, &swapchain->fences[image_index],
|
||||
true, ~0ull);
|
||||
|
||||
const VkPresentRegionKHR *region = NULL;
|
||||
if (regions && regions->pRegions)
|
||||
region = ®ions->pRegions[i];
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue