Hi Am 28.07.22 um 20:54 schrieb Jim Shargo:
Hi Wayland folks!TL;DR: I'm working on extending VKMS and wanted feedback from other compositor/wayland devs.
Thanks for helping!
// Background I work on the ChromeOS compositor, and recently I've been doing a bunch of stuff to improve our testing setup. At the moment, my main focus is improving our ability to write integration tests against DRM/KMS. It's pretty tricky to get right. Working with mocks of DRM loses all the useful helpers that live within the kernel, which would need to be rewritten (and kept up-to-date) in userspace. Stuff like writeback support would be even harder. Earlier this year, VKMS came up as a potential solution. I was happy to see that Weston is already using it. I've started thinking about what features from the wild we'd need, and started digging into the code. // Current Status I recently sent out my first patchset, which will let userspace build their own DRM drivers with ConfigFS. This implicitly adds support for multi-display setups which were impossible to test before. This also allows for multiple virtual DRM drivers to be created and used at the same time, which may increase test parallelism? Haven't tried it yet. v1 patchset: https://patchwork.kernel.org/project/dri-devel/list/?series=662676 cover letter: https://lists.freedesktop.org/archives/dri-devel/2022-July/365647.html // Rough Plans The big features I want to target with this work are: - Multi-display and movable planes. This is mostly covered by the ConfigFS changes. - Hot plugging. - Color, color management and HDR. Loads of new formats, support for color properties not currently implemented. Making sure writeback buffers are useful for this. - Improve IGT testing for VKMS (for new features and existing skipped tests) // Questions - What VKMS features could help your testing the most? - How much do you care about writeback buffer support vs CRC checks in tests atm? - What kinds of bugs do you get around DRM/KMS? - Any thoughts in general?
I think damage handling might be useful. Userspace tests can set damage areas and readback the the results or CRC checksum. See the kernel's drm_plane_enable_fb_damage_clips() and struct drm_atomic_helper_damage_iter.
Best regards Thomas
Thanks! -- Jim
-- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Ivo Totev
OpenPGP_signature
Description: OpenPGP digital signature