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-815407425...@bootlin.com
> 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 <[email protected]>

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

Reply via email to