STRUCT VKMS_OUTPUT(9)
π struct vkms_output(9) β like, the whole vibe of VKMS output, bestie
okay so this is a page from the Kernel API Manual, and it's about struct vkms_output β which is literally the internal representation of all the output components in VKMS. everything that makes your virtual output a whole entire unit lives in here. main character energy tbh π
β¨ NAME β¨
struct vkms_output β the internal representation of all output components in VKMS π
like, all of them. no cap.
πΈ SYNOPSIS πΈ
here's the whole struct, copied exactly because we do not play with typos:
struct vkms_output {
struct drm_crtc crtc;
struct drm_writeback_connector wb_connector;
struct drm_encoder wb_encoder;
struct workqueue_struct *composer_workq;
spinlock_t lock;
bool composer_enabled;
struct vkms_crtc_state *composer_state;
spinlock_t composer_lock;
};
that's it, that's the struct. eight members. iconic. π
π¦ Members π¦
okay let's go through every single one because every detail matters and we're not skipping anything:
crtcβ the base CRTC in DRM. that's her foundation, her roots, her origin story πwb_connectorβ astruct drm_writeback_connector. (it's chillin' in the struct up there, bestie π)wb_encoderβ astruct drm_encoder. (also just vibing in the struct β¨)composer_workqβ an ordered workqueue forcomposer_state.composer_work. ordered is the key word here β she queues things up in order, she's not chaotic π₯lockβ the lock used to protect concurrent access to the composer. basically the bouncer at the club door, nobody gets in while she's holding it π«Άcomposer_enabledβ protected bylock, and it'struewhen the VKMS composer is active (like when a crc is needed, or writeback is happening). she's either on or off, no in-between πcomposer_stateβ protected bylock, this is the current state of this VKMS output. the now. the present. the moment πcomposer_lockβ a lock used internally to protectcomposer_statemembers. different lock, different job, don't mix them up okay π
ngl thelock/composer_locksituation is very "two locks, two purposes" and if you confuse them that's on you bestie π
β SEE ALSO β
the kernel file ./drivers/gpu/drm/vkms/vkms_drv.h and honestly a whole friend group of related pages:
struct vkms_frame_info(9)struct pixel_argb_u16(9)pixel_write_t(9)enum pixel_read_direction(9)pixel_read_line_t(9)struct conversion_matrix(9)struct vkms_plane_state(9)struct vkms_crtc_state(9)struct vkms_device(9)vkms_create(9)vkms_destroy(9)vkms_crtc_init(9)vkms_output_init(9)vkms_plane_init(9)
go read them. iykyk π
that's the whole page bestie, you ate that π this little gem lives at ./drivers/gpu/drm/vkms, dated October 2026, and it's struct vkms_output(9) β mwah, slay, periodt π
β¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms