mesa/src/virtio/vulkan
Oleksandr Gabrylchuk 02fab4cf9e venus: Implement guest vram blob type.
Add support of GUEST_VRAM type of blob. These are dedicated heap memory
allocations required for vk support on hypervisors that don't support
runtime injections of host memory into guest physical address space.

The flow of usage:
1) Host VM reserves dedicated heap memory
2) Device get info about memory reservations and report it to guest
using mmio registers
3) Guest virtio-gpu driver on starts checks mmio registers for
physical address and length of reserved region. Then it reserves it
in guest.
4) On each call of vkAllocateMemory() guest driver gets chunk of
required memory and send it to host using sg list. It uses one sg
entry for 1 blob call. Heap is managed on guest using drm memory
manager (drm_mm).

Signed-off-by: Oleksandr.Gabrylchuk <Oleksandr.Gabrylchuk@opensynergy.com>
Signed-off-by: Andrii Pauk <Andrii.Pauk@opensynergy.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14536>
2022-03-01 17:25:56 +00:00
..
.clang-format venus: change SpaceBeforeParens style option 2021-04-20 16:29:28 -07:00
meson.build meson: add support for meson devenv with vulkan 2022-02-04 09:08:47 -08:00
vn_android.c venus: add necessary format list for ahb image creation 2022-02-17 01:45:45 +00:00
vn_android.h venus: pass necessary format list at ahb image format query 2022-02-17 01:45:45 +00:00
vn_buffer.c venus: update some obsolete assumptions described 2022-01-28 19:15:52 +00:00
vn_buffer.h venus: add buffer cache init and usage flows 2021-10-28 00:23:14 +00:00
vn_command_buffer.c venus: no roundtrip needed for shmem backed by BLOB_MEM_HOST3D 2022-02-11 21:16:42 +00:00
vn_command_buffer.h venus: remember cmd buffer fb attachments 2021-06-03 06:03:31 +00:00
vn_common.c venus: add atrace support 2021-10-09 00:42:32 +00:00
vn_common.h venus: fix two VN_TRACE_SCOPE's in the same scope 2022-02-10 05:11:46 +00:00
vn_cs.c venus: no roundtrip needed for shmem backed by BLOB_MEM_HOST3D 2022-02-11 21:16:42 +00:00
vn_cs.h venus: no roundtrip needed for shmem backed by BLOB_MEM_HOST3D 2022-02-11 21:16:42 +00:00
vn_descriptor_set.c venus: refactor private descriptor_set helpers to be private 2021-10-27 18:33:11 +00:00
vn_descriptor_set.h venus: refactor private descriptor_set helpers to be private 2021-10-27 18:33:11 +00:00
vn_device.c venus: add some trace points 2021-12-16 19:27:56 +00:00
vn_device.h venus: add buffer cache init and usage flows 2021-10-28 00:23:14 +00:00
vn_device_memory.c venus: Implement guest vram blob type. 2022-03-01 17:25:56 +00:00
vn_device_memory.h venus: track memory type property flags in vn_device_memory 2021-12-04 01:48:16 +00:00
vn_icd.c venus: add atrace support 2021-10-09 00:42:32 +00:00
vn_icd.h
vn_image.c venus: deep copy format list info for deferred image creation 2022-02-17 01:45:44 +00:00
vn_image.h venus: properly destroy deferred ahb image before real image creation 2022-02-15 21:32:02 +00:00
vn_instance.c venus: no roundtrip needed for shmem backed by BLOB_MEM_HOST3D 2022-02-11 21:16:42 +00:00
vn_instance.h venus: init renderer_info at renderer creation (part 2) 2022-02-11 21:16:42 +00:00
vn_physical_device.c venus: add macros to help with future extensions 2022-02-24 15:55:57 +00:00
vn_physical_device.h venus: cache VkFormatProperties 2022-02-19 03:57:30 +00:00
vn_pipeline.c venus: subtract appended header size in vn_CreatePipelineCache 2022-01-07 22:10:53 +00:00
vn_pipeline.h venus: split out vn_pipeline.[ch] 2021-04-09 16:58:46 +00:00
vn_query_pool.c venus: split out vn_query_pool.[ch] 2021-04-09 16:58:46 +00:00
vn_query_pool.h venus: split out vn_query_pool.[ch] 2021-04-09 16:58:46 +00:00
vn_queue.c venus: init renderer_info at renderer creation (part 2) 2022-02-11 21:16:42 +00:00
vn_queue.h venus: track whether a fence is external 2022-01-28 19:15:52 +00:00
vn_render_pass.c venus: remember framebuffer attachments 2021-06-03 06:03:31 +00:00
vn_render_pass.h venus: remember framebuffer attachments 2021-06-03 06:03:31 +00:00
vn_renderer.h venus: Implement guest vram blob type. 2022-03-01 17:25:56 +00:00
vn_renderer_internal.c venus: add some trace points 2021-12-16 19:27:56 +00:00
vn_renderer_internal.h venus: cache shmems 2021-12-15 19:02:29 +00:00
vn_renderer_util.c venus: add some trace points 2021-12-16 19:27:56 +00:00
vn_renderer_util.h venus: add vn_renderer_shmem_pool 2021-12-15 19:02:29 +00:00
vn_renderer_virtgpu.c venus: Implement guest vram blob type. 2022-03-01 17:25:56 +00:00
vn_renderer_vtest.c venus: init renderer_info at renderer creation (part 1) 2022-02-11 21:16:42 +00:00
vn_ring.c venus: trace vn_ring_wait_space 2022-02-19 03:57:30 +00:00
vn_ring.h Revert "venus: remove vn_ring_wait_all" 2022-01-28 19:15:52 +00:00
vn_wsi.c vulkan/wsi: untangle buffer-images from prime 2022-02-22 10:04:34 +00:00
vn_wsi.h venus: handle VkBindImageMemorySwapchainInfoKHR 2022-01-27 20:35:07 +00:00