vhost-device/staging
Dorinda Bassey 391e32b82f vhost-device-gpu: Add Initial Implementation
This program is a vhost-user backend daemon that provides
VIRTIO GPU device emulation as specified in the VIRTIO Spec v.1.2
https://docs.oasis-open.org/virtio/virtio/v1.2/csd01/virtio-v1.2-csd01.html
This crate utilizes the rutabaga crate from crosvm with some
minor modification to rutabaga crate to fix compilation.
This crate depends on this PR[rust-vmm/vhost#239]
that implements support for QEMU's vhost-user-gpu protocol.

This device uses the rutabaga_gfx crate to offer two rendering backends:
1. Virglrenderer:
   - Rutabaga translates OpenGL API and Vulkan calls to an intermediate
     representation and allows for OpenGL acceleration on the host.
2. Gfxstream:
   - GLES and Vulkan calls are forwarded to the host.

These backends can be used by simply changing the `--gpu-mode` command
line option.
This crate also includes some modifications from libkrun virtio-gpu device
https://github.com/containers/libkrun/tree/main/src/devices/src/virtio/gpu

Fixes: rust-vmm#598

Co-authored-by: Dorinda Bassey <dbassey@redhat.com>
Co-authored-by: Matej Hrica <mhrica@redhat.com>

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
Signed-off-by: Matej Hrica <mhrica@redhat.com>
2024-11-20 15:02:02 +01:00
..
vhost-device-gpu vhost-device-gpu: Add Initial Implementation 2024-11-20 15:02:02 +01:00
vhost-device-video build(deps): bump the non-rust-vmm group across 2 directories with 9 updates 2024-11-18 09:55:28 +01:00
.gitignore Add new workspace under staging/ subdirectory 2023-10-11 16:25:00 +05:30
Cargo.lock vhost-device-gpu: Add Initial Implementation 2024-11-20 15:02:02 +01:00
Cargo.toml vhost-device-gpu: Add Initial Implementation 2024-11-20 15:02:02 +01:00
coverage_config_x86_64.json vhost-device-gpu: Add Initial Implementation 2024-11-20 15:02:02 +01:00
README.md Add new workspace under staging/ subdirectory 2023-10-11 16:25:00 +05:30

vhost-device staging workspace

This directory includes a separate Cargo workspace to include working vhost-user backend implementations that concern devices that have partial functionality and devices (and/or functionality) not yet ratified in the VIRTIO specification. For more details about vhost-device you can refer to the repository README.

To add a new member crate:

  1. Place it under this directory, ./staging.
  2. Append its name in the workspace.members array field of the workspace manifest file.
  3. Update the crate list in the repository README.

Testing and Continuous Integration

Notice : The CI runs on the root workspace only. This means that staging crates can have failing tests and bring down code coverage without automatic checks. Tests can still be run locally as part of the development process. To add a crate to the CI, add it to the root Cargo.toml workspace.members array as well as the staging manifest.