STRUCT VKMS_CONFIG_PLANE(9)
π¦ struct vkms_config_plane(9) π¦
okay so bestie, we're in the Kernel API Manual and this is the page for struct vkms_config_plane(9) β aka the little config struct that keeps track of a VKMS plane before it becomes a whole real plane. it's giving "backstage pass" energy, fr fr. let's get into it π
πΈ NAME πΈ
struct vkms_config_plane β and the original NAME line is literally just the struct name with a dash and no blurb, so we're not gonna invent one. iconic minimalism, honestly. β¨
β¨ SYNOPSIS β¨
struct vkms_config_plane {
struct list_head link;
struct vkms_config *config;
enum drm_plane_type type;
struct xarray possible_crtcs;
bool default_pipeline;
struct vkms_plane *plane;
};
π Members π
linkβ the link to the other planes invkms_config. it's how this plane hangs out with its plane friends in the list πconfigβ thevkms_configthat this plane belongs to. its home base, its main character config, if you will.typeβ the type of the plane. heads up: the creator of the configuration needs to ensure that at least one primary plane is present. like, that's a you problem, not a struct problem. don't forget it π«Άpossible_crtcsβ an array of CRTCs that can be used with this plane. it's the plane's approved CRTC roster πdefault_pipelineβ okay so this field is right there in the struct, but the manpage itself does not give it a member description. not me noticing the missing blurb π it's in the synopsis, and that's the whole story on this page.planeβ internal usage. this pointer should never be considered as valid. it can be used to store a temporary reference to a VKMS plane during device creation. it is not managed by the configuration and must be managed by other means. so like... don't trust it, don't adopt it, don't expect the config to take it to soccer practice. periodt π
bestie warning: plane is internal-use-only and never valid to just casually rely on. temporary reference during device creation, that's it. managing it is somebody else's job, no cap.
π¦ SEE ALSO π¦
- Kernel file
./drivers/gpu/drm/vkms/vkms_config.h struct vkms_config(9)struct vkms_config_crtc(9)struct vkms_config_encoder(9)struct vkms_config_connector(9)vkms_config_for_each_plane(9)vkms_config_for_each_crtc(9)vkms_config_for_each_encoder(9)vkms_config_for_each_connector(9)vkms_config_plane_for_each_possible_crtc(9)vkms_config_encoder_for_each_possible_crtc(9)vkms_config_connector_for_each_possible_encoder(9)vkms_config_create(9)vkms_config_default_create(9)vkms_config_destroy(9)vkms_config_get_device_name(9)vkms_config_get_num_crtcs(9)vkms_config_is_valid(9)vkms_config_register_debugfs(9)vkms_config_create_plane(9)vkms_config_destroy_plane(9)vkms_config_plane_set_type(9)vkms_config_plane_get_default_pipeline(9)vkms_config_plane_set_default_pipeline(9)vkms_config_plane_attach_crtc(9)vkms_config_plane_detach_crtc(9)vkms_config_create_crtc(9)vkms_config_destroy_crtc(9)vkms_config_crtc_get_writeback(9)vkms_config_crtc_set_writeback(9)vkms_config_crtc_primary_plane(9)vkms_config_crtc_cursor_plane(9)vkms_config_create_encoder(9)vkms_config_destroy_encoder(9)vkms_config_encoder_attach_crtc(9)vkms_config_encoder_detach_crtc(9)vkms_config_create_connector(9)vkms_config_destroy_connector(9)vkms_config_connector_attach_encoder(9)vkms_config_connector_detach_encoder(9)vkms_config_connector_get_status(9)vkms_config_connector_set_status(9)
and that's the whole vibe check, bestie π this page came from the ./drivers/gpu/drm/vkms corner of the kernel, dated October 2026, and it's living under the Kernel API Manual umbrella. go forth and configure your planes responsibly πβ¨
π¦ 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