Commit Graph

14 Commits

Author SHA1 Message Date
Dorinda Bassey
caaac9a6fd chore(vhost-device-gpu): bump rutabaga_gfx to 0.1.71
- update RutabagaBuilder to accept fence handler at
  construction
- replace query() with resource3d_info()
- adjust tests for new fence + GuestMemory setup
- drop removed fields (e.g. guest_cpu_mappable)

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2025-09-18 09:18:57 +02:00
Alex Bennée
e6caab8bb0 vhost-device-gpu: gate env::set_var test usage
Only used with gfxstream tests.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2025-09-12 14:22:27 +03:00
Alex Bennée
ac27ba3856 vhost-device-gpu: move assert_matches import
It is used by all the tests so don't gate it just by gfxstream. In
fact we don't need clap::ValueEnum either as the use super::* imports
it anyway so we can drop the whole feature stanza.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2025-09-12 14:22:27 +03:00
Alex Bennée
9dcb98387a vhost-device-gpu: clean-up includes for gfxstream
Keep the compiler output clean for a --no-default-features build.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2025-09-12 14:22:27 +03:00
Dorinda Bassey
d6d95a7208 vhost-device-gpu: fix typo in comment and code
correct typo in comment in device.rs and typo in
lib.rs

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2025-09-02 12:09:54 +02:00
Dorinda Bassey
066c4f7651 vhost-device-gpu: support VHOST_USER_GPU_DMABUF_SCANOUT
Refactored the set_scanout implementation to send
VHOST_USER_GPU_DMABUF_SCANOUT or DMABUF_SCANOUT2 messages when
using the VirglRenderer backend. This enables proper support
for exporting resources via DMABUF and passing the relevant
metadata (width, height, stride, format, modifier) to the
frontend.

Updated VirtioGpuResource to store optional handle and 3D info
required for DMABUF scanout, and added validation for these
fields.

Extended test coverage to include validation for invalid scanout
IDs, missing resources, and backend-specific behavior for both
VirglRenderer and Gfxstream.

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2025-09-02 12:09:54 +02:00
Dorinda Bassey
8e3e8a918c virtio_gpu.rs: expose component_type for specific backend
- Added `component_type` field to `RutabagaVirtioGpu` to retain the
  selected backend type (e.g., VirglRenderer, Gfxstream).
- Refactored `configure_rutabaga_builder` to return both the builder
  and the selected component type.
- Updated `new_gpu` test helper to accept a `RutabagaComponentType`
  argument, allowing tests to be parameterized by GPU backend.

This prepares the codebase for backend-specific logic, such as
validating behavior based on the component used.

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2025-09-02 12:09:54 +02:00
Dorinda Bassey
852751b76a virtio_gpu.rs: Allow mutation in AssociatedScanouts methods
Corrected the AssociatedScanouts methods to remove the
const keyword and allow them to be mutable functions

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2025-09-02 12:09:54 +02:00
Dorinda Bassey
1a1d1e2685 vhost-device-gpu: update rutabaga_gfx, CI and README
- Updated rutabaga_gfx to 0.1.62, which now requires env vars to
use system-provided virglrenderer and minigbm libraries for both
gfxstream and virglrenderer GPU backends.

- Updated README with new build instructions using
  CROSVM_USE_SYSTEM_* env vars.
- Update transfer_read to use the latest rutabaga_gfx changes

- The GNU CI builds and tests for vhost-device-gpu currently fail
because they try to build against the vendored virglrenderer tree.
Locally we already build with CROSVM_USE_SYSTEM_* env vars, so
mirror that setup in CI as well.

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2025-09-02 12:09:54 +02:00
Manos Pitsidianakis
8077199d82 Fix more clippy lints
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2025-07-18 13:02:46 +02:00
Manos Pitsidianakis
5f762349fb gpu: fix minor typos
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2025-07-07 11:28:02 +03:00
Wenyu Huang
91a625603f chore: bump virtio-queue and some related dependencies
virtio-queue v0.15 introduces a new Descriptor API supporting both
split and packed virtqueue.
Update our dependencies and code to work with the new version
of the crate, including updating vhost-user-backend and virtio-vsock.

Updates `vhost-user-backend` from 0.18.0 to 0.19.0
- [Release notes](https://github.com/rust-vmm/vhost/releases)
- [Commits](rust-vmm/vhost@vhost-user-backend-v0.18.0...vhost-user-backend-v0.19.0)

Updates `virtio-queue` from 0.14.0 to 0.15.0
- [Release notes](https://github.com/rust-vmm/vm-virtio/releases)
- [Commits](rust-vmm/vm-virtio@virtio-queue-v0.14.0...virtio-queue-v0.15.0)

Updates `virtio-vsock` from 0.8.0 to 0.9.0
- [Release notes](https://github.com/rust-vmm/vm-virtio/releases)
- [Commits](rust-vmm/vm-virtio@virtio-vsock-v0.8.0...virtio-vsock-v0.9.0)

Signed-off-by: Wenyu Huang <huangwenyuu@outlook.com>
2025-06-23 21:36:11 +02:00
Ruoqing He
d43fd79bb7 clippy: Fix clippy::precedence
Fix `clippy::precedence` warnings reported by clippy 0.1.85 (4d91de4e48
2025-02-17).

```console
error: operator precedence can trip the unwary
   --> vhost-device-template/src/vhu_foo.rs:152:9
    |
152 | /         1 << VIRTIO_F_VERSION_1
153 | |             | 1 << VIRTIO_F_NOTIFY_ON_EMPTY
154 | |             | 1 << VIRTIO_RING_F_INDIRECT_DESC
155 | |             | 1 << VIRTIO_RING_F_EVENT_IDX
    | |__________________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence
    = note: `-D clippy::precedence` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(clippy::precedence)]`
help: consider parenthesizing your expression
    |
152 ~         1 << VIRTIO_F_VERSION_1
153 +             | 1 << VIRTIO_F_NOTIFY_ON_EMPTY
154 +             | 1 << VIRTIO_RING_F_INDIRECT_DESC | (1 << VIRTIO_RING_F_EVENT_IDX)
    |
```

Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
2025-03-31 13:45:27 +02:00
Matej Hrica
02409f0a09 Move vhost-user-gpu from staging to main directory
The CLI interface should be stable now and coverage is good. Support
for more backends as described in the README is comming later.

Note that this decreases the test coverage in the staging directory from
82.43% to 74.62%.

Signed-off-by: Matej Hrica <mhrica@redhat.com>
2025-02-14 10:15:52 +02:00