This patchset adds support for emulating virtual hardware with VKMS. The virtual hardware mode can be enabled by using the following command while loading the module: sudo modprobe vkms enable_virtual_hw=1 The first patch is prep work for adding virtual_hw mode and refactors the plane composition in vkms by adding a helper function vkms_composer_common() which can be used for both vblank mode and virtual mode. The second patch adds virtual hardware support as a module option. It adds new atomic helper functions for the virtual mode and uses the existing atomic helpers for vblank mode This gives us two sets of drm_crtc_funcs and drm_crtc_helper_funcs structs for both modes, making the code flow cleaner and easier to debug. This patchset has been tested with the igt tests- kms_writeback, kms_atomic, kms_lease, kms_flip, kms_pipe_get_crc and preserves results except for subtests related to crc reads and vertical blanking, in which case, tests are skipped. Sumera Priyadarsini (2): drm/vkms: Refactor vkms_composer_worker() to prep for virtual_hw mode drm/vkms: Add support for virtual hardware mode drivers/gpu/drm/vkms/vkms_composer.c | 92 +++++++++++++++++---------- drivers/gpu/drm/vkms/vkms_crtc.c | 43 ++++++++++++- drivers/gpu/drm/vkms/vkms_drv.c | 16 +++-- drivers/gpu/drm/vkms/vkms_drv.h | 4 ++ drivers/gpu/drm/vkms/vkms_writeback.c | 3 +- 5 files changed, 117 insertions(+), 41 deletions(-) -- 2.31.1