On 10/06, Melissa Wen wrote: > Drop issues already resolved in vkms: > > - CRC API Improvements to [1] add igt test to check extreme alpha values > and [2] alpha blending; > - [3] prime buffer sharing; > - [4] writeback support; > > On the other hand, we also found or thought about other improvements since > the last update of this document: > > - better support for IGT tests > - improvements to writeback support > - syzbot report > > Finally, we reorder items by the assumed complexity. > > [1] https://patchwork.freedesktop.org/series/55944/ > [2] https://patchwork.freedesktop.org/series/80823/ > [3] https://patchwork.freedesktop.org/series/63212/ > [4] https://patchwork.freedesktop.org/series/81177/ > > v2: > - Link to syzbot dashboard > > Cc: Daniel Vetter <daniel.vetter@xxxxxxxx> > Cc: Rodrigo Siqueira <rodrigosiqueiramelo@xxxxxxxxx> > Cc: Haneen Mohammed <hamohammed.sa@xxxxxxxxx> > > Signed-off-by: Melissa Wen <melissa.srw@xxxxxxxxx> > Acked-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > Documentation/gpu/vkms.rst | 99 ++++++++++++++++++++------------------ > 1 file changed, 53 insertions(+), 46 deletions(-) > > diff --git a/Documentation/gpu/vkms.rst b/Documentation/gpu/vkms.rst > index 61586fc861bb..50b30dea0ba8 100644 > --- a/Documentation/gpu/vkms.rst > +++ b/Documentation/gpu/vkms.rst > @@ -10,36 +10,24 @@ > TODO > ==== > > -CRC API Improvements > --------------------- > - > -- Optimize CRC computation ``compute_crc()`` and plane blending ``blend()`` > - > -- Use the alpha value to blend vaddr_src with vaddr_dst instead of > - overwriting it in ``blend()``. > - > -- Add igt test to check cleared alpha value for XRGB plane format. > - > -- Add igt test to check extreme alpha values i.e. fully opaque and fully > - transparent (intermediate values are affected by hw-specific rounding modes). > - > -Runtime Configuration > ---------------------- > - > -We want to be able to reconfigure vkms instance without having to reload the > -module. Use/Test-cases: > - > -- Hotplug/hotremove connectors on the fly (to be able to test DP MST handling of > - compositors). > +If you want to do any of the items listed below, please share your interest > +with one of the VKMS maintainers. Hi Melissa, How about change "one of the VKMS maintainers" to "with VKMS maintainers". With the above change, everything else LGTM. Reviewed-by: Rodrigo Siqueira <rodrigosiqueiramelo@xxxxxxxxx> > -- Configure planes/crtcs/connectors (we'd need some code to have more than 1 of > - them first). > +IGT better support > +------------------ > > -- Change output configuration: Plug/unplug screens, change EDID, allow changing > - the refresh rate. > +- Investigate: (1) test cases on kms_plane that are failing due to timeout on > + capturing CRC; (2) when running kms_flip test cases in sequence, some > + successful individual test cases are failing randomly. > > -The currently proposed solution is to expose vkms configuration through > -configfs. All existing module options should be supported through configfs too. > +- VKMS already has support for vblanks simulated via hrtimers, which can be > + tested with kms_flip test; in some way, we can say that VKMS already mimics > + the real hardware vblank. However, we also have virtual hardware that does > + not support vblank interrupt and completes page_flip events right away; in > + this case, compositor developers may end up creating a busy loop on virtual > + hardware. It would be useful to support Virtual Hardware behavior in VKMS > + because this can help compositor developers to test their features in > + multiple scenarios. > > Add Plane Features > ------------------ > @@ -55,34 +43,50 @@ There's lots of plane features we could add support for: > - Additional buffer formats, especially YUV formats for video like NV12. > Low/high bpp RGB formats would also be interesting. > > -- Async updates (currently only possible on cursor plane using the legacy cursor > - api). > +- Async updates (currently only possible on cursor plane using the legacy > + cursor api). > + > +For all of these, we also want to review the igt test coverage and make sure > +all relevant igt testcases work on vkms. > + > +Prime Buffer Sharing > +-------------------- > > -For all of these, we also want to review the igt test coverage and make sure all > -relevant igt testcases work on vkms. > +- Syzbot report - WARNING in vkms_gem_free_object: > + https://syzkaller.appspot.com/bug?extid=e7ad70d406e74d8fc9d0 > + > +Runtime Configuration > +--------------------- > + > +We want to be able to reconfigure vkms instance without having to reload the > +module. Use/Test-cases: > + > +- Hotplug/hotremove connectors on the fly (to be able to test DP MST handling > + of compositors). > + > +- Configure planes/crtcs/connectors (we'd need some code to have more than 1 of > + them first). > + > +- Change output configuration: Plug/unplug screens, change EDID, allow changing > + the refresh rate. > + > +The currently proposed solution is to expose vkms configuration through > +configfs. All existing module options should be supported through configfs > +too. > > Writeback support > ----------------- > > -Currently vkms only computes a CRC for each frame. Once we have additional plane > -features, we could write back the entire composited frame, and expose it as: > +- The writeback and CRC capture operations share the use of composer_enabled > + boolean to ensure vblanks. Probably, when these operations work together, > + composer_enabled needs to refcounting the composer state to proper work. > > -- Writeback connector. This is useful for testing compositors if you don't have > - hardware with writeback support. > +- Add support for cloned writeback outputs and related test cases using a > + cloned output in the IGT kms_writeback. > > - As a v4l device. This is useful for debugging compositors on special vkms > configurations, so that developers see what's really going on. > > -Prime Buffer Sharing > --------------------- > - > -We already have vgem, which is a gem driver for testing rendering, similar to > -how vkms is for testing the modeset side. Adding buffer sharing support to vkms > -allows us to test them together, to test synchronization and lots of other > -features. Also, this allows compositors to test whether they work correctly on > -SoC chips, where the display and rendering is very often split between 2 > -drivers. > - > Output Features > --------------- > > @@ -93,7 +97,10 @@ Output Features > - Add support for link status, so that compositors can validate their runtime > fallbacks when e.g. a Display Port link goes bad. > > -- All the hotplug handling describe under "Runtime Configuration". > +CRC API Improvements > +-------------------- > + > +- Optimize CRC computation ``compute_crc()`` and plane blending ``blend()`` > > Atomic Check using eBPF > ----------------------- > -- > 2.28.0 > -- Rodrigo Siqueira https://siqueira.tech
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel