vmw_bo_cpu_blit(9)
β¨ 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β thestruct vmw_diff_cpyused 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:
vmw_find_first_diff(9)vmw_find_last_diff(9)vmw_memcpy(9)vmw_adjust_rect(9)vmw_diff_memcpy(9)struct vmw_bo_blit_line_data(9)vmw_bo_cpu_blit_line(9)
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
- 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