venus: avoid feedback for external fence

Sync fd fence export implies a payload reset operation, and application
can immediately do another submission with the same fence after export.
Concurrent use of the same feedback slot is incorrect. Keeping a list of
feedback slots for sync_fd external fence is a bit over designed given
those fences are usually not checked or waited by the app, but will hand
off the ownership via sync fd to an external client.

Fixes: d7f2e6c8d0 ("venus: add fence feedback")

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17975>
(cherry picked from commit 5457f4c0a497484eca1ecf91af8114f95435c023)
This commit is contained in:
Yiwei Zhang 2022-08-06 05:18:49 +00:00 committed by Dylan Baker
parent 27fb80d64d
commit c8ba293450
2 changed files with 4 additions and 1 deletions

View File

@ -10903,7 +10903,7 @@
"description": "venus: avoid feedback for external fence",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "d7f2e6c8d033de19a1d473df4fb1a46c7d365159"
},

View File

@ -538,6 +538,9 @@ vn_fence_feedback_init(struct vn_device *dev,
VkCommandBuffer *cmd_handles;
VkResult result;
if (fence->is_external)
return VK_SUCCESS;
/* Fence feedback implementation relies on vkWaitForFences to cover the gap
* between feedback slot signaling and the actual fence signal operation.
*/