venus: remove redundant bo roundtrip and add more docs

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25611>
This commit is contained in:
Yiwei Zhang
2023-10-05 00:33:29 -07:00
committed by Marge Bot
parent 47024f22fe
commit 1db03e42bd
2 changed files with 12 additions and 11 deletions
-10
View File
@@ -335,16 +335,6 @@ vn_device_memory_alloc_guest_vram(
return result;
}
result =
vn_instance_submit_roundtrip(dev->instance, &mem->bo_roundtrip_seqno);
if (result != VK_SUCCESS) {
vn_renderer_bo_unref(dev->renderer, mem->base_bo);
vn_async_vkFreeMemory(dev->instance, dev_handle, mem_handle, NULL);
return result;
}
mem->bo_roundtrip_seqno_valid = true;
return VK_SUCCESS;
}
+12 -1
View File
@@ -31,9 +31,20 @@ struct vn_device_memory {
struct vn_device_memory *base_memory;
/* non-NULL when mappable or external */
struct vn_renderer_bo *base_bo;
/* enforce kernel and ring ordering between memory export and free */
/* ensure renderer side vkFreeMemory is called after vkGetMemoryFdKHR
*
* 1. driver creates virtgpu bo from renderer VkDeviceMemory
* 2. driver submits via vq to update the vq seqno
* 3, driver submits via ring to wait for vq reaching above seqno
* 4. driver submits vkFreeMemory via ring
*
* To be noted: a successful virtgpu mmap implies a roundtrip, so
* vn_FreeMemory after that no longer has to wait.
*/
bool bo_roundtrip_seqno_valid;
uint64_t bo_roundtrip_seqno;
VkDeviceSize base_offset;
VkDeviceSize map_end;