Re: Using virtio-gpu instead of virtwl

Alyssa Ross
2022-03-16T16:55:35Z

[-- Attachment #1: Type: text/plain, Size: 2071 bytes --]

> I tried running with `crosvm --gpu`, but after `modprobe virtio-gpu`,
> crosvm crashed with:
>
> [ 31.326763] Invalid ELF header magic: != ELF
> [ 31.331450] [drm] pci: virtio-gpu-pci detected at 0000:00:07.0
> [ 31.333020] [drm] Host memory window: 0x200000000 +0x200000000
> [ 31.333983] [drm] features: +virgl -edid +resource_blob +host_visible
> [ 31.333984] [drm] features: +context_init
> [ 31.337289] [drm] number of scanouts: 1
> [ 31.337938] [drm] number of cap sets: 1
> [ERROR:src/linux.rs:3264] child pcivirtio-gpu (pid 63446) died: signo
> 17, status 11, code 2
> [ERROR:devices/src/proxy.rs:212] failed write to child device process
> pcivirtio-gpu: failed to send packet: Broken pipe (os error 32)
>
> Then I tried with `--gpu=backend=2d` and that didn't crash, but
> instead opened a window showing some bootloader stuff. I now have
> /dev/dri/{card0, renderD128} devices, so I guess the next step is
> figuring out what they do!

When I've previously attempted this, I had some crosvm thread crash with
a seccomp violation because it tried to log something. If you
--disable-sandbox, it might work or at least give you a clearer error
message.

> > Good luck! Let me know if I can help with anything else.
>
> If you happen to know of any documentation, that would be great. But I
> guess I probably just need to spend a load of time reading crosvm,
> Linux, and Sommelier source code.

There might be some helpful stuff in the Mesa repo as well, because lots
of the latest graphics stuff is being done for crosvm. A quick grep
found me the Venus (Vulkan over virtio-gpu) documentation, which
describes testing with crosvm, and the script they use to run crosvm in
CI. It also reminded me that there are two different virgl
implementations in crosvm, virgl_renderer and virgl_renderer_next. I
think last time I tried I had better luck with virgl_renderer. You can
set buildFeatures in the Nix expression to experiment with them.

I hope some of that's helpful. I really wish I'd taken better notes
the one time I got this to work.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]