STRUCT VMW_BINDING_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 a struct vmw_ctx_bindinfo. literally just how big the thing is πŸ’–
  • offsets β€” an array[shader_slot] of offsets pointing at the array[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