STRUCT DRM_VMW_GB_SURFACE_CREATE_REQ(9)
π 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
- 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