On Wed, Apr 13, 2022 at 05:12:13PM +0000, Thomas Leonard wrote:
On Wed, 6 Apr 2022 at 12:19, Thomas Leonard
wrote: [ converting from virtwl to virtio-gpu ] I tried, but failed, to figure out the protocol. I did manage to get a test application showing a little animation, but it crashes after a few seconds.
OK, I found a solution to this: you can just open the device file twice and use one instance for Wayland messages and the other for allocating images. This avoids the first race. With that, I got the proxy converted:
https://github.com/talex5/wayland-proxy-virtwl/pull/28
Though I'm not sure it's an improvement: +1,819 −577 lines!
Instructions for configuring crosvm to use it:
https://github.com/talex5/wayland-proxy-virtwl#virtio-gpu-support
And I wrote up my guesses about the protocol here:
https://github.com/talex5/wayland-proxy-virtwl/blob/master/virtio-spec.md
That's extremely helpful, thanks for writing it up!
I don't think it's possible to avoid races completely, but it seems to be working reasonably well so far.
I wonder if it would be worth asking about the remaining problems on the relevant kernel mailing lists, since they sound like protocol issues rather than anything specific to your implementation. I tracked down the series where they were added[1], perhaps the From/To/Cc in that posting would be a good starting point? If you do reach out, please CC me (and this list, if you want)! [1]: https://lore.kernel.org/dri-devel/20210921232024.817-1-gurchetansingh@chromi...