Tux Machines

Linux Graphics: VKMS and libei Work

Posted by Roy Schestowitz on May 10, 2023

=> Top 5 Best Linux Distributions for Laptops [2023 Edition] | Haiku Makes Huge Progress on RISC-V Support and 432-Core Chiplet-Based RISC-V Chip

Maira Canal: Rotating Planes on VKMS

=> ↺ Maira Canal: Rotating Planes on VKMS

In my last blog post, I described a bit of my previous work on the rustgem project, and after that, as I had finished the VGEM features, I sent a RFC to the mailing list. Although I still need to work on some rustgem feedback, I started to explore more of the KMS (Kernel Mode Setting) and its properties.

=> ↺ RFC

I talked to my mentor Melissa Wen, one of the VKMS maintainers, and she proposed implementing plane rotation capabilities to VKMS. The VKMS (Virtual Kernel Mode Setting) is a software-only KMS driver that is quite useful for testing and running X (or similar compositors) on headless machines. It sounded like a great idea, as I would like to explore a bit more of the KMS side of things.

=> ↺ Melissa Wen

In order to have an image on a display, we need to go through the whole Kernel Mode Setting (KMS) Display Pipeline. The pipeline has a couple of different objects, such as framebuffers, planes, and CRTCs, and the relationship between them can be quite complicated. If you are interested in the KMS Display Pipeline, I recommend reading the great KMS documentation. But here we are focused in only one of those abstractions, the plane.

=> ↺ KMS documentation

=> ↺ RFC | ↺ Melissa Wen | ↺ KMS documentation

Peter Hutterer: libei and a fancy protocol

=> ↺ Peter Hutterer: libei and a fancy protocol

libei is the library for Emulated Input - see this post for an introduction. Like many projects, libei was started when it was still unclear if it could be the right solution to the problem. In the years (!) since, we've upgraded the answer to that question from "hopefully" to "yeah, I reckon" - doubly so since we added support for receiver contexts and got InputLeap working through the various portal changes.

=> ↺ libei | ↺ this post | ↺ receiver contexts | ↺ InputLeap | ↺ portal changes

=> ↺ libei | ↺ this post | ↺ receiver contexts | ↺ InputLeap | ↺ portal changes

=> gemini.tuxmachines.org

Proxy Information
Original URL
gemini://gemini.tuxmachines.org/n/2023/05/10/Linux_Graphics_VKMS_and_libei_Work.gmi
Status Code
Success (20)
Meta
text/gemini;lang=en-GB
Capsule Response Time
141.180846 milliseconds
Gemini-to-HTML Time
2.307886 milliseconds

This content has been proxied by September (3851b).