On 22/11/24 - 18:38, Louis Chauvet wrote: > VKMS is manly used to test userspace program and its behavior. The current > implementation is not very configurable as you can only have one device, > with few specific planes. > > This series aims to introduce a new interface, using ConfigFS, to create > and configure more devices. This will introduce: > - Device creation > - Plane creation > - Plane configuration (type, color encoding, color range, rotations) > - Encoder creation > - CRTC creation > - Linking between CRTC and planes/encoders > > The proposition is: > /config/vkms > DEVICE_1 > ┣━ enable > ┣━ writeback > ┣━ planes > ┃ ┣━ PLANE_1 > ┃ ┃ ┣━ type > ┃ ┃ ┣━ supported_rotations > ┃ ┃ ┣━ color_range > ┃ ┃ ┣━ color_encoding > ┃ ┃ ┣━ default_color_encoding > ┃ ┃ ┣━ default_rotations > ┃ ┃ ┣━ default_color_range > ┃ ┃ ┗━ possible_crtcs > ┃ ┃ ┗━ >> /config/vkms/DEVICE_1/crtc/CRTC_1 > ┃ ┣━ PLANE_2 > ┃ ┃ ┗━ ditto > ┃ ┗━ PLANE_3 > ┃ ┗━ ditto > ┃ > ┣━ encoders > ┃ ┣━ ENCODER_1 > ┃ ┃ ┗━ possible_crtcs > ┃ ┃ ┗━ >> /config/vkms/DEVICE_1/crtc/CRTC_1 > ┃ ┗━ ENCODER_2 > ┃ ┗━ ditto > ┃ > ┗━ crtc > ┗━ CRTC_1 > > This interface aims to be extendable (new property can easly be added in > objects) and easy to use (objects are created simply by creating folders, > and configured by writing files). > > This series depends on > https://lore.kernel.org/all/20241122-google-remove-crtc-index-from-parameter-v2-0-81540742535a@xxxxxxxxxxx > but as this is a bit complex to rebase, you can find a working branch > here: > https://gitlab.freedesktop.org/louischauvet/kernel/-/tree/b4/vkms-configfs > > Signed-off-by: Louis Chauvet <louis.chauvet@xxxxxxxxxxx> Hi all, I am also currently working on MST emulation for VKMS. If someone can read what I already did and at tell me if my implementation seems on the right track it could be nice. The current status is not very advanced: I can emulate a mst HUB, but not a screen. I am currently working on properly emulating the HUB by using an other hub. You can find the branch for this work here: https://gitlab.freedesktop.org/louischauvet/kernel/-/tree/b4/vkms-mst Thanks a lot, Louis Chauvet