STRUCT DRM_VMW_CONTROL_STREAM_ARG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ struct drm_vmw_control_stream_arg(9) πŸ¦‹

okay so bestie, this is a page straight out of the Kernel API Manual, and it's literally just one struct. no cap, that's the whole vibe. it's the argument struct for the DRM_VMW_CONTROL_STREAM ioctl, and every field is doing its own little main-character thing. let's get into it πŸ’–


✨ NAME ✨

struct drm_vmw_control_stream_arg β€” the struct that carries everything you need to control a stream. that's it, that's the name, she's lowkey mysterious because the original page gives you literally no tagline beyond that πŸ™ˆ


🌸 SYNOPSIS 🌸

struct drm_vmw_control_stream_arg {
    __u32 stream_id;
    __u32 enabled;
    __u32 flags;
    __u32 color_key;
    __u32 handle;
    __u32 offset;
    __s32 format;
    __u32 size;
    __u32 width;
    __u32 height;
    __u32 pitch[3];
    __u32 pad64;
    struct drm_vmw_rect src;
    struct drm_vmw_rect dst;
};

look at her. fifteen whole fields. iconic layout, no notes πŸ’…


πŸŽ€ MEMBERS πŸŽ€

  • stream_id β€” which stream you're controlling. the page says "Stearm to control" and honestly? we're keeping the typo energy, it's giving handwritten-sticky-note. it means stream. (the stream you're controlling 🫢)
  • enabled β€” the on/off switch. if this is false, literally every argument after it gets ignored. ignoring them. not even looking. so set this one with intention, bestie 😭
  • flags β€” she's in the struct, she's a __u32, but this page doesn't describe her. present but unbothered. no further lore given πŸ”₯
  • color_key β€” also sitting in the struct as a __u32, also without a description on this page. she's here, that's all we know 🌈
  • handle β€” handle to the buffer you're getting data from. your source of truth ✨
  • offset β€” how far from the start of the dma buffer the overlay lives. like a little address-based commute 🌸
  • format β€” the format of the overlay, as understood by the host. note the type, it's __s32, not __u32 β€” signed and everything πŸ‘‘
  • size β€” size of the overlay, in bytes. numbers bestie, we love units πŸ’œ
  • width β€” width of the overlay πŸ“
  • height β€” height of the overlay. yes she got her own field, respect it πŸŽ€
  • pitch β€” an array of pitches. the last two entries are only used for YUV12 formats, so don't come for the full array unless you're on YUV12 πŸ¦‹
  • pad64 β€” padding field. in the struct, __u32, undescribed by this page. she's just vibing in the layout πŸ’€
  • src β€” the source rect, and it must be within the area defined above. this is not a suggestion, it's a requirement, fr fr 🚨
  • dst β€” the destination rect. cute detail: its x and y may be negative πŸ™ˆ
heads up: flags, color_key, and pad64 are genuinely listed in the struct but this page doesn't say what they do, so I'm not out here inventing lore for them. no cap, that's just what's written πŸ™

πŸ’« DESCRIPTION πŸ’«

this struct is the argument to the DRM_VMW_CONTROL_STREAM ioctl. that's the whole description. short, sweet, to the point β€” she said what she said ⭐


πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./include/uapi/drm/vmwgfx_drm.h
  • enum drm_vmw_handle_type(9)
  • struct drm_vmw_getparam_arg(9)
  • struct drm_vmw_size(9)
  • union drm_vmw_surface_create_arg(9)
  • struct drm_vmw_fence_rep(9)
  • struct drm_vmw_bo_rep(9)
  • union drm_vmw_alloc_bo_arg(9)
  • struct drm_vmw_cursor_bypass_arg(9)
  • struct drm_vmw_fence_wait_arg(9)
  • struct drm_vmw_fence_event_arg(9)
  • struct drm_vmw_shader_create_arg(9)
  • struct drm_vmw_gb_surface_create_req(9)
  • struct drm_vmw_gb_surface_create_rep(9)
  • union drm_vmw_gb_surface_create_arg(9)
  • union drm_vmw_gb_surface_reference_arg(9)
  • enum drm_vmw_synccpu_op(9)
  • struct drm_vmw_synccpu_arg(9)
  • union drm_vmw_extended_context_arg(9)
  • struct drm_vmw_handle_close_arg(9)
  • struct drm_vmw_gb_surface_create_ext_req(9)
  • union drm_vmw_gb_surface_create_ext_arg(9)
  • union drm_vmw_gb_surface_reference_ext_arg(9)
  • struct drm_vmw_msg_arg(9)
  • struct drm_vmw_mksstat_add_arg(9)
  • struct drm_vmw_mksstat_remove_arg(9)

like, that's a whole friend group right there. go read them too, iykyk πŸ’•


and that's the page!! πŸŽ€ shoutout to the source dir ./include/uapi/drm and the October 2026 date stamp β€” that's where this fairy godmother of a struct doc came from, bestie. take care of her, mwah πŸ’‹βœ¨πŸ¦‹

πŸ“¦ where this page comes from