Earlier setting up resolution, refresh rate for display screen was done through userspace programs, thus exposing system calls and breaking up while changing different modes. Later dri-devel community created KMS(Kernel Mode Setting) which provides ability to Kernel , to configure a mode (screen resolution, color depth, and refresh rate) which is in a range of values supported by graphics hardware and the display screen. Virtual Kernel Mode Setting(VKMS) is a newly added device driver in Linux Kernel that provides virtual KMS implementation for headless systems and DRM test coverage.
In this talk, I will take you on my journey of how I started contributing in Linux Kernel and later ended up with adding features in VKMS . I will give an overview of display pipeline in DRM (Direct Rendering Manager) Subsystem . Further I will explain how VKMS fits in the workflow of a graphical representation, and how I worked to add features like alpha blending and support for overlay planes in this virtual driver. Also, I would like to highlight on some more applications of VKMS.
Collaborative note: https://hackmd.io/@coscup/S1mWyXeEB