vmw_bo_cpu_blit(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ vmw_bo_cpu_blit(9) β€” kernel API manual, bestie edition ✨

okay so this is a page straight out of the Kernel API Manual and honestly? it's giving "niche but iconic." we're talking about vmw_bo_cpu_blit(9), and yes, the (9) means it's a kernel thing, so put your serious hat on (but keep the sparkle) πŸ’…


🌸 NAME 🌸

vmw_bo_cpu_blit β€” an in-kernel cpu blit. that's it, that's the whole vibe. it copies stuff from one buffer object to another, but doing it with the cpu, no cap 🫢


πŸ¦‹ SYNOPSIS πŸ¦‹

int vmw_bo_cpu_blit (struct vmw_bo *vmw_dst , u32 dst_offset , u32
       dst_stride , struct vmw_bo *vmw_src , u32 src_offset , u32 src_stride ,
       u32 w , u32 h , struct vmw_diff_cpy *diff );

like, nine arguments, bestie. she's high maintenance but she's worth it ✨


πŸ’œ ARGUMENTS πŸ’œ

  • vmw_dst β€” the destination buffer object. where the pixels are going πŸ’«
  • dst_offset β€” destination offset where the blit starts, measured in bytes.
  • dst_stride β€” destination stride, also in bytes. (yes, bytes again. keep up πŸŽ€)
  • vmw_src β€” the source buffer object. where the pixels are coming from.
  • src_offset β€” source offset where the blit starts, in bytes.
  • src_stride β€” source stride, in bytes. consistent queen.
  • w β€” width of the blit. πŸ“
  • h β€” height of the blit. πŸ“
  • diff β€” the struct vmw_diff_cpy used to track the modified bounding box. she's keeping receipts on exactly what changed πŸ‘‘

πŸŽ€ RETURN πŸŽ€

  • Zero on success. slay βœ…
  • Negative error value on failure. sad but valid 😭
  • will print out kernel warnings on caller bugs. so if you messed up, the kernel will be loud about it, fr fr πŸ’€

πŸ”₯ DESCRIPTION πŸ”₯

so what does she actually do? performs a CPU blit from one buffer object to another, avoiding a full bo vmap β€” because that vmap can literally exhaust or fragment vmalloc space, and we are not about that life πŸ™ˆ

on supported architectures (x86), we're using kmap_atomic, which avoids cross-processor TLB- and cache flushes, and may β€” on non-HIGHMEM systems β€” reference already set-up mappings. efficiency icon behavior, honestly ⚑

⚠️ big warning, bestie, read this twice: neither of the buffer objects may be placed in PCI memory (Fixed memory in TTM terminology) when using this function. like, just don't. it's not a vibe. 🚫

🧚 SEE ALSO 🧚

kernel file ./drivers/gpu/drm/vmwgfx/vmwgfx_blit.c β€” the source of truth ✨

then the whole friend group:


and that's the page, bestie πŸ’– this cutie lives over at ./drivers/gpu/drm/vmwgfx, dated October 2026 β€” go off, vmwgfx, periodt. πŸŒˆπŸ‘‘

πŸ“¦ where this page comes from