<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jan 15, 2021 at 3:18 AM Alex Bennée <<a href="mailto:alex.bennee@linaro.org">alex.bennee@linaro.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Keiichi Watanabe <<a href="mailto:keiichiw@chromium.org" target="_blank">keiichiw@chromium.org</a>> writes:<br>
<br>
> This is the v4 RFC of virtio video device specification.<br>
> PDF versions are available at [1, 2].<br>
><br>
> Note that this patch depends on a recent patchset "Cross-device resource<br>
> sharing" [3].<br>
><br>
> Here is a list of major changes from v3:<br>
> * Redesingned struct definitions for each command and request based on<br>
>   discussions at [4].<br>
> * Renamed commands/structs/enums to more descriptive names.<br>
> * Had different structs and fields for image formats and bitstream formats.<br>
> * Added more detailed specification for supported video codecs.<br>
> * Made stream_id be allocated by the device.<br>
> * Had a single parameter struct per-stream instead of per-queue parameters and<br>
>   controls.<br>
> * Allowed the driver to specify the number of buffers to use via<br>
>   "cur_{image,bitstream}_buffers".<br>
> * Renamed RESOURCE_CREATE command to RESOURCE_ATTACH command and allow the<br>
>   driver to use this command when replacing backing memories as well.<br>
><br>
> [5] is the diff of the header file from v3. Note that it only contains changes<br>
> in the header. We haven't updated the driver nor device implementation to focus<br>
> on protocol design discussion first.<br>
><br>
> While it may appear that many parts have been changed since the previous<br>
> revision, these changes are to address the issues raised in previous discussions<br>
> or/and to make the protocol simpler and easier to prevent misuse.<br>
> I'd appreciate any types of feedback.<br>
><br>
> Best regards,<br>
> Keiichi<br>
><br>
> [1] (full): <a href="https://drive.google.com/file/d/1DiOJZfUJ5wvFtnNFQicxt0zkp4Ob1o9C/view?usp=sharing" rel="noreferrer" target="_blank">https://drive.google.com/file/d/1DiOJZfUJ5wvFtnNFQicxt0zkp4Ob1o9C/view?usp=sharing</a><br>
> [2] (only video section): <a href="https://drive.google.com/file/d/188uAkIWE0BsXETECez98y5fJKw8rslj3/view?usp=sharing" rel="noreferrer" target="_blank">https://drive.google.com/file/d/188uAkIWE0BsXETECez98y5fJKw8rslj3/view?usp=sharing</a><br>
> [3] <a href="https://lists.oasis-open.org/archives/virtio-comment/202003/msg00035.html" rel="noreferrer" target="_blank">https://lists.oasis-open.org/archives/virtio-comment/202003/msg00035.html</a><br>
> [4] <a href="https://markmail.org/thread/c6h3e3zn647qli3w" rel="noreferrer" target="_blank">https://markmail.org/thread/c6h3e3zn647qli3w</a><br>
> [5]<br>
> <a href="https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2164411" rel="noreferrer" target="_blank">https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2164411</a><br>
<br>
Hi Keiichi,<br>
<br>
I wanted to ask what the current status of this spec was. Are you<br>
planning to submit a new revision of the specification due or are things<br>
fairly stable now?<br>
<br>
We are starting to think about next steps for virtualised video as part<br>
of Linaro's Stratos work. Specifically we are thinking about<br>
implementing backends and getting a stack up and running which we can<br>
use to experiment with multiple hypervisors and VM deployment<br>
approaches.<br>
<br>
Longer term goals included looking at how to integrate virtio-video with<br>
a secure world on ARM (e.g. feed video data to a secure world device for<br>
playback via virtio). As part of that we will also be looking at how to<br>
minimise the memory profile of the backend to do this.<br>
<br>
Looking at the virtio-spec repo it looks like the cross-device resource<br>
sharing is now merged:<br>
<br>
  87fa6b5 * virtio-gpu: add support for mapping/unmapping blob resources<br>
  89e7eb5 * virtio-gpu: add resource create blob<br>
  162578b * virtio-gpu: add the ability to export resources<br>
  68f66ff * content: define what an exported object is<br>
<br>
are there any other prerequisites?<br>
<br>
>From a backend implementation point of view it makes sense to wait until<br>
there is a working frontend driver up-streamed into the kernel. I guess<br>
that is blocked on the final call for vote on the virtio spec?<br>
<br>
I'm sure there is scope for parallelism here but I wanted to get a sense<br>
of the current direction before embarking on work that would require a<br>
big re-write down the line.<br></blockquote><div><br></div><div>Hi Alex,</div><div><br></div><div>Thanks for reaching out to me. I'm really happy to hear your team is looking at virtio-video.</div><div><br></div><div>For the specification, we've been preparing the v5 spec by addressing previous review comments and simplifying rules. I think we'll be able to share it for reviewing soon. It won't require any additional mechanism other than the resource sharing feature.</div><div><br></div><div>For the implementation, unfortunately, we haven't started implementing a driver using the v5 protocol yet.</div><div>While we have the driver and device using the v3 protocol in Chrome OS repository, some efforts are required to update them to support the v5 protocol because there are some gaps between the v3 protocol and the v4/v5 protocol.</div><div>I think the driver implementation is necessary for the spec to be merged, but it's not yet clear when we can spend time implementing drivers. It's likely to be after April or so.<br></div><div><br></div><div>IIRC, OpenSynergy folks, who implemented the v3 driver, also had some plan to implement the driver with the v5 spec.</div><div>Matti, do you have any update on it? I'd really appreciate it if we could keep working for upstream together.</div><div><br></div><div>Regards,</div><div>Keiichi</div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Regards,<br>
<br>
-- <br>
Alex Bennée<br>
</blockquote></div></div>