__vmw_execb...se_pinned_bo(9)
β¨ NAME β¨
This is the __vmw_execb...se_pinned_bo(9) page from the Kernel API Manual, and the main character is __vmw_execbuf_release_pinned_bo β the one that flushes queries and unpins the pinned query bo. π
πΈ SYNOPSIS πΈ
void __vmw_execbuf_release_pinned_bo (struct vmw_private *dev_priv , struct vmw_fence_obj *fence );
π ARGUMENTS π
dev_privβ The device private structure. Thatβs the device-private bestie this call hangs out with. πfenceβ If non-NULL should point to astruct vmw_fence_objissued _after_ a query barrier that flushes all queries touching the current buffer pointed to bydev_priv->pinned_bo. β¨
π DESCRIPTION π
Okay so use this function to unpin the pinned query bo, or as a query barrier when you need to make sure all queries have finished before the next fifo command. Example: on hardware context destructions, where the hardware may otherwise leak unfinished queries. π
This function does not return any failure codes, but it makes attempts to do safe unpinning in case of errors. No return-value drama, but it still tries to be careful. π«Ά
The function will synchronize on the previous query barrier, and will thus not finish until that barrier has executed. So yeah, itβs gonna wait for that barrier to do its thing. β³
β οΈ Heads up, bestie: the dev_priv->cmdbuf_mutex needs to be held by the current thread before calling this function. Thatβs a hard requirement, fr fr.
π¦ SEE ALSO π¦
Kernel file ./drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c is the main-character file, and this whole entourage is literally right here:
struct vmw_relocation(9)enum vmw_resource_relocation_type(9)struct vmw_resource_relocation(9)struct vmw_ctx_validation_info(9)struct vmw_cmd_entry(9)vmw_ptr_diff(9)vmw_execbuf_bindings_commit(9)vmw_bind_dx_query_mob(9)vmw_cmd_ctx_first_setup(9)vmw_execbuf_res_size(9)vmw_execbuf_rcache_update(9)vmw_execbuf_res_val_add(9)vmw_view_res_val_add(9)vmw_view_id_val_add(9)vmw_resource_context_res_add(9)vmw_resource_relocation_add(9)vmw_resource_relocations_free(9)vmw_resource_relocations_apply(9)vmw_resources_reserve(9)vmw_cmd_res_check(9)vmw_rebind_all_dx_query(9)vmw_rebind_contexts(9)vmw_view_bindings_add(9)vmw_cmd_cid_check(9)vmw_execbuf_info_from_res(9)vmw_query_bo_switch_prepare(9)vmw_query_bo_switch_commit(9)vmw_translate_mob_ptr(9)vmw_translate_guest_ptr(9)vmw_cmd_dx_define_query(9)vmw_cmd_dx_bind_query(9)vmw_cmd_begin_gb_query(9)vmw_cmd_begin_query(9)vmw_cmd_end_gb_query(9)vmw_cmd_end_query(9)vmw_cmd_wait_gb_query(9)vmw_cmd_wait_query(9)vmw_cmd_res_switch_backup(9)vmw_cmd_switch_backup(9)vmw_cmd_bind_gb_surface(9)vmw_cmd_update_gb_image(9)vmw_cmd_update_gb_surface(9)vmw_cmd_readback_gb_image(9)vmw_cmd_readback_gb_surface(9)vmw_cmd_invalidate_gb_image(9)vmw_cmd_invalidate_gb_surface(9)vmw_cmd_shader_define(9)vmw_cmd_shader_destroy(9)vmw_cmd_set_shader(9)vmw_cmd_set_shader_const(9)vmw_cmd_bind_gb_shader(9)vmw_cmd_dx_set_single_constant_buffer(9)vmw_cmd_dx_set_constant_buffer_offset(9)vmw_cmd_dx_set_shader_res(9)vmw_cmd_dx_set_shader(9)vmw_cmd_dx_set_vertex_buffers(9)vmw_cmd_dx_set_index_buffer(9)vmw_cmd_dx_set_rendertargets(9)vmw_cmd_dx_clear_rendertarget_view(9)vmw_cmd_dx_clear_depthstencil_view(9)vmw_cmd_dx_set_so_targets(9)vmw_cmd_dx_check_subresource(9)vmw_cmd_dx_view_remove(9)vmw_cmd_dx_define_shader(9)vmw_cmd_dx_destroy_shader(9)vmw_cmd_dx_bind_shader(9)vmw_cmd_dx_genmips(9)vmw_cmd_dx_transfer_from_buffer(9)vmw_cmd_intra_surface_copy(9)vmw_execbuf_copy_fence_user(9)vmw_execbuf_submit_fifo(9)vmw_execbuf_submit_cmdbuf(9)vmw_execbuf_cmdbuf(9)vmw_execbuf_unpin_panic(9)vmw_execbuf_release_pinned_bo(9)
π and thatβs the whole page, bestie β brought to you by ./drivers/gpu/drm/vmwgfx, dated October 2026. mwah! π
π¦ 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