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:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user