mirror of
https://github.com/rust-vmm/vhost-device.git
synced 2025-12-26 06:32:44 +00:00
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> |
||
|---|---|---|
| .. | ||
| vhost-device-gpu | ||
| vhost-device-video | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| coverage_config_x86_64.json | ||
| README.md | ||
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:
- Place it under this directory,
./staging. - Append its name in the
workspace.membersarray field of the workspace manifest file. - 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.