STRUCT VMW_BINDING_INFO(9)
π struct vmw_binding_info(9) π
okay bestie, so this is a page from the Kernel API Manual and it's literally all about struct vmw_binding_info β aka the per binding type information for the binding manager. yes the title is fancy, we're keeping it, and the manual name is Kernel API Manual in case you were wondering π
β¨ NAME β¨
struct vmw_binding_info β the per-binding-type info stash for the binding manager. it's giving "lookup table energy" and honestly? iconic.
β¨ SYNOPSIS β¨
struct vmw_binding_info {
size_t size;
const size_t *offsets;
vmw_scrub_func scrub_func;
};
that's the whole struct, no cap. three members and they all pull their weight π«Ά
β¨ Members β¨
sizeβ the size of the struct binding that's derived from astruct vmw_ctx_bindinfo. literally just how big the thing is πoffsetsβ anarray[shader_slot]of offsets pointing at thearray[slot]of struct bindings for this binding type. yes it's arrays all the way down, we love a nested situation πΈscrub_funcβ a pointer to the scrub function for this binding type. it scrubs. it's the scrubber. that's the vibe π§
β¨ Description β¨
so this struct holds static information β that's its whole job β and that static info helps optimize the binding manager and avoid an excessive amount of switch statements π like bestie, we are NOT doing a million switch cases at runtime, that's not the move. we look it up in the table and we slay π
lowkey the entire point is: static info in, excessive switch statements out. main character design decision fr fr.
β¨ SEE ALSO β¨
go touch some related pages, bestie, there are so many and they ate:
Kernel file ./drivers/gpu/drm/vmwgfx/vmwgfx_binding.c and then this absolute friend group:
struct vmw_ctx_binding_state(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_collect_dirty_vbs(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)
yes, forty-ish pages. no, we are not skipping any. every single one is here, periodt π₯
and that's the whole page!! π this gem lives over in ./drivers/gpu/drm/vmwgfx, dated October 2026, and it's part of the Kernel API Manual β go read the rest of the friend group, iykyk π¦π
π¦ 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