mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 02:48:06 +02:00
venus: ensure ffb can catch device lost
similar to qfb Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15206 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40790>
This commit is contained in:
parent
35a18596ee
commit
b90adb10e8
1 changed files with 16 additions and 0 deletions
|
|
@ -1760,6 +1760,22 @@ vn_get_fence_status(VkDevice dev_handle,
|
|||
*/
|
||||
vn_async_vkWaitForFences(dev->primary_ring, dev_handle, 1,
|
||||
&fence_handle, VK_TRUE, UINT64_MAX);
|
||||
} else if (relax_state && vn_relax_warn(relax_state)) {
|
||||
/* Upon vn_relax warn order, emit a synchronous vkGetFenceStatus
|
||||
* to catch renderer device lost. Meanwhile, validate consistency
|
||||
* against ffb status if the fence is signaled.
|
||||
*/
|
||||
result = vn_call_vkGetFenceStatus(dev->primary_ring, dev_handle,
|
||||
fence_handle);
|
||||
if (result == VK_ERROR_DEVICE_LOST) {
|
||||
vn_log(dev->instance, "aborting on ffb device lost");
|
||||
abort();
|
||||
}
|
||||
if (result == VK_SUCCESS &&
|
||||
vn_feedback_get_status(fence->feedback.slot) != VK_SUCCESS) {
|
||||
vn_log(dev->instance, "ERROR: ffb must be signaled now");
|
||||
result = VK_ERROR_UNKNOWN;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
result = vn_call_vkGetFenceStatus(dev->primary_ring, dev_handle,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue