vmw_kms_stdu_readback(9)
π vmw_kms_stdu_readback β like, the readback one, from the Kernel API Manual bestie π
okay so picture this: you're doing a readback from a buffer-object backed framebuffer and the screen target system at the same time. that's the whole vibe. this function is the main character of this page, and yes, it's in the Kernel API Manual β¨
πΈ SYNOPSIS πΈ
int vmw_kms_stdu_readback (struct vmw_private *dev_priv , struct
drm_file *file_priv , struct vmw_framebuffer *vfb , struct
drm_vmw_fence_rep __user *user_fence_rep , struct drm_clip_rect *clips ,
struct drm_vmw_rect *vclips , uint32_t num_clips , int increment ,
struct drm_crtc *crtc );
like, that's a lot of arguments and honestly? iconic. let's go through them one by one π
π ARGUMENTS π
dev_privβ pointer to the device private structure. you know the one πfile_privβ pointer to astruct drm-filethat identifies the caller. ngl you can set this toNULL, but thenuser_fence_rephas to beNULLtoo. no cap, they go together, it's a package deal π«Άvfbβ pointer to the buffer-object backed framebuffer. slay.user_fence_repβ the user-space provided structure for fence info. fences are so fetch.clipsβ array of clip rects. heads up: eitherclipsorvclipsmust beNULL. one of them. not both. pick a lane πvclipsβ the alternate array of clip rects. and yeah, same rule: eitherclipsorvclipsmust beNULLπnum_clipsβ how many clip rects are chilling inclipsorvclips. literally just the count.incrementβ the increment you use when looping overclipsorvclips. loops are lowkey everywhere.crtcβ ifcrtcis passed, perform stdu dma on thatcrtconly. very exclusive, very main character energy β¨
π¦ DESCRIPTION π¦
so if you're DMA-ing till the screen target system, this function will also notify the screen target system that a bounding box of the cliprects has been updated. the way it just... tells on itself. obsessed π
β RETURN β
0on success π- a negative error code on failure π
-ERESTARTSYSif interrupted β like when someone rudely cuts you off mid-syscall π
π SEE ALSO π
bestie, the whole friend group is here. kernel file ./drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c plus:
struct vmw_stdu_dirty(9)struct vmw_screen_target_display_unit(9)vmw_stdu_crtc_destroy(9)vmw_stdu_define_st(9)vmw_stdu_bind_st(9)vmw_stdu_populate_update(9)vmw_stdu_update_st(9)vmw_stdu_destroy_st(9)vmw_stdu_crtc_mode_set_nofb(9)vmw_stdu_bo_cpu_clip(9)vmw_stdu_bo_cpu_commit(9)vmw_kms_stdu_surface_clip(9)vmw_kms_stdu_surface_fifo_commit(9)vmw_kms_stdu_surface_dirty(9)vmw_stdu_encoder_destroy(9)vmw_stdu_connector_destroy(9)vmw_stdu_primary_plane_cleanup_fb(9)vmw_stdu_primary_plane_prepare_fb(9)vmw_stdu_plane_update_bo(9)vmw_stdu_plane_update_surface(9)vmw_stdu_primary_plane_atomic_update(9)vmw_stdu_init(9)vmw_stdu_destroy(9)vmw_kms_stdu_init_display(9)
ok that's the whole page, fr fr. no gatekeeping, every flag and reference is right there π
and that's a wrap, bestie π this gem lives in ./drivers/gpu/drm/vmwgfx, version dated October 2026, and it's literally called vmw_kms_stdu_readback(9) if you need to find it again. mwah π
π¦ 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