STRUCT DRM_VMW_GB_SURFACE_CREATE_REQ(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct drm_vmw_gb_surface_create_req β€” Kernel API Manual ✨

okay so bestie, welcome to the Kernel API Manual β€” this one's all about struct drm_vmw_gb_surface_create_req, and honestly? it's giving "small struct, big responsibilities" πŸŽ€


🌸 NAME 🌸

struct drm_vmw_gb_surface_create_req β€” no cap, that's the whole name section, the manpage literally just says the struct name and dips πŸ’€ (we love a minimal queen)


✨ SYNOPSIS ✨

here's the whole shape of her, copied exactly, do not @ me:

struct drm_vmw_gb_surface_create_req {
    __u32 svga3d_flags;
    __u32 format;
    __u32 mip_levels;
    enum drm_vmw_surface_flags drm_surface_flags;
    __u32 multisample_count;
    __u32 autogen_filter;
    __u32 buffer_handle;
    __u32 array_size;
    struct drm_vmw_size base_size;
 };

look at all those fields, she's stacked πŸ”₯


πŸ¦‹ Members πŸ¦‹

okay so the docs only describe two of these bad boys, but they're the important ones:

  • svga3d_flags β€” the SVGA3d surface flags for the device πŸ’… like, the device-level vibe settings for your surface, iykyk.
  • format β€” the SVGA3d format 🌈 yes that's it, that's the whole description, short and iconic.
bestie note: the rest of the fields (mip_levels, drm_surface_flags, multisample_count, autogen_filter, buffer_handle, array_size, base_size) are right there in the struct β€” the manual just doesn't spell them out individually, so I'm not gonna make stuff up fr fr πŸ™ˆ

πŸ‘‘ Description πŸ‘‘

okay so here's the moment you've been waiting for:

this struct is the input argument to the DRM_VMW_GB_SURFACE_CREATE Ioctl ✨ like, you hand it over and the kernel knows what surface you want to build.

and plot twist β€” it's also part of the output argument for the DRM_VMW_GB_SURFACE_REF Ioctl 🫢 so she's a main character in two different ioctls, we stan a versatile icon.


πŸ’– SEE ALSO πŸ’–

the girlies she runs with (all from the kernel file ./include/uapi/drm/vmwgfx_drm.h, obviously):

  • 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_control_stream_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_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, go read them too 🧚


🌸 okay that's the page! this lil gem lives in ./include/uapi/drm and the version date is October 2026 β€” so bestie, mark your calendar, it's giving future-core πŸ’€βœ¨ stay hydrated, read your headers, and slay πŸ’œπŸ¦‹

πŸ“¦ where this page comes from