vmw_collect_dirty_vbs(9)
π vmw_collect_dirty_vbs(9) β like, the Kernel API Manual page, bestie β¨
okay so this is a page from the Kernel API Manual and honestly? it's giving "niche but iconic." we're in the vmwgfx binding crew today π
πΈ NAME πΈ
vmw_collect_dirty_vbs β builds up SVGA3dVertexBuffer data so a SVGA3dCmdDXSetVertexBuffers command has something cute to wear π
β¨ SYNOPSIS β¨
void vmw_collect_dirty_vbs (struct vmw_ctx_binding_state *cbs , const
struct vmw_ctx_bindinfo *bi , unsigned long *dirty , u32 max_num );
like, it returns void, so don't go looking for a return value, she simply doesn't do that π
π¦ ARGUMENTS π¦
cbsβ pointer to the context'sstruct vmw_ctx_binding_state. the main character of this whole situation ngl π«Άbiβ pointer to wherever the binding info array lives insidecbs. she points, we follow β¨dirtyβ bitmap showing which bindings still need to be emitted. the "who's still got something to say" list πmax_numβ the maximum number of entries that can fit in thebiarray. know her limits, respect her limits π
π DESCRIPTION π
so basically, vmw_collect_dirty_vbs scans the bi array looking for bindings that actually need to be emitted, then builds up a buffer of SVGA3dVertexBuffer data out of them. it's giving "curated collection" π
and on output β this is the part, lowkey the best part β you get three things handed back to you through cbs:
cbs->bind_cmd_countβ how many bindings are getting emitted π₯cbs->bind_first_slotβ the index of the first emitted binding βcbs->bind_cmd_bufferβ the actual command data, right there, ready to go π
so like, that's the whole vibe. scan, collect, fill in those three fields. periodt β¨
π§ SEE ALSO π§
the friend group, fr fr β every single one of them π
- Kernel file
./drivers/gpu/drm/vmwgfx/vmwgfx_binding.c struct vmw_ctx_binding_state(9)struct vmw_binding_info(9)vmw_cbs_context(9)vmw_binding_loc(9)vmw_binding_drop(9)vmw_binding_add(9)vmw_binding_cb_offset_update(9)vmw_binding_add_uav_index(9)vmw_binding_transfer(9)vmw_binding_state_kill(9)vmw_binding_state_scrub(9)vmw_binding_res_list_kill(9)vmw_binding_res_list_scrub(9)vmw_binding_state_commit(9)vmw_binding_rebind_all(9)vmw_binding_scrub_shader(9)vmw_binding_scrub_render_target(9)vmw_binding_scrub_texture(9)vmw_binding_scrub_dx_shader(9)vmw_binding_scrub_cb(9)vmw_collect_view_ids(9)vmw_collect_dirty_view_ids(9)vmw_emit_set_sr(9)vmw_emit_set_rt(9)vmw_collect_so_targets(9)vmw_emit_set_so_target(9)vmw_binding_emit_dirty_ps(9)vmw_emit_set_vb(9)vmw_binding_emit_dirty(9)vmw_binding_scrub_sr(9)vmw_binding_scrub_dx_rt(9)vmw_binding_scrub_so_target(9)vmw_binding_scrub_vb(9)vmw_binding_scrub_ib(9)vmw_binding_scrub_so(9)vmw_binding_state_alloc(9)vmw_binding_state_free(9)vmw_binding_state_list(9)vmw_binding_state_reset(9)vmw_binding_dirtying(9)
ngl there's no BUGS section, no exit statuses, no signals on this one β just vibes and vertex buffers. don't go making stuff up π«Ά
and that's the page!! this little beauty lives over in ./drivers/gpu/drm/vmwgfx, dated October 2026, and yeah β it's a vmw_collect_dirty_vbs(9) situation from start to finish πβ¨π slay, go emit those bindings bestie πΈ
π¦ 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