• Home
  • Raw
  • Download

Lines Matching full:binding

28  * This file implements the vmwgfx context binding manager,
41 * already killed if a resource to which a binding points
47 * to protect all binding manager data.
50 * (surface, shader or even DX query) is conceptually a context binding that
67 * struct vmw_ctx_binding_state - per context binding state
73 * @ds_view: Depth-stencil view binding.
76 * @index_buffer: Index buffer binding.
78 * @dirty: Bitmap tracking per binding-type changes that have not yet
80 * @dirty_vb: Bitmap tracking individual vertex buffer binding changes that
82 * @bind_cmd_buffer: Scratch space used to construct binding commands.
83 * @bind_cmd_count: Number of binding command data entries in @bind_cmd_buffer
85 * device binding slot of the first command data entry in @bind_cmd_buffer.
129 * struct vmw_binding_info - Per binding type information for the binding
132 * @size: The size of the struct binding derived from a struct vmw_ctx_bindinfo.
134 * of struct bindings for the binding type.
135 * @scrub_func: Pointer to the scrub function for this binding type.
137 * Holds static information to help optimize the binding manager and avoid
148 * location of the struct vmw_ctx_bindinfo slots for each binding type.
233 * context binding state tracker.
235 * @cbs: The context binding state tracker.
239 * binding state tracker. If there are no active bindings, this function
257 * @bt: The binding type.
258 * @shader_slot: The shader slot of the binding. If none, then set to 0.
259 * @slot: The slot of the binding.
272 * vmw_binding_drop: Stop tracking a context binding
274 * @bi: Pointer to binding tracker storage.
276 * Stops tracking a context binding, and re-initializes its storage.
277 * Typically used when the context binding is replaced with a binding to
289 * vmw_binding_add: Start tracking a context binding
291 * @cbs: Pointer to the context binding state tracker.
292 * @bi: Information about the binding to track.
294 * Starts tracking the binding in the context binding
315 * vmw_binding_transfer: Transfer a context binding tracking entry.
317 * @cbs: Pointer to the persistent context binding state tracker.
318 * @bi: Information about the binding to track.
346 * @cbs: Pointer to the context binding state tracker.
349 * context binding state tracker. Then re-initializes the whole structure.
364 * @cbs: Pointer to the context binding state tracker.
367 * context binding state tracker.
386 * resource binding list
388 * @head: list head of resource binding list
404 * resource binding list
406 * @head: list head of resource binding list
433 * vmw_binding_state_commit - Commit staged binding info
435 * @ctx: Pointer to context to commit the staged binding info to.
436 * @from: Staged binding info built during execbuf.
439 * Transfers binding info from a temporary structure
460 * Walks through the context binding list and rebinds all scrubbed
487 * vmw_binding_scrub_shader - scrub a shader binding from a context.
489 * @bi: single binding information.
494 struct vmw_ctx_bindinfo_shader *binding = in vmw_binding_scrub_shader() local
495 container_of(bi, typeof(*binding), bi); in vmw_binding_scrub_shader()
512 cmd->body.type = binding->shader_slot + SVGA3D_SHADERTYPE_MIN; in vmw_binding_scrub_shader()
520 * vmw_binding_scrub_render_target - scrub a render target binding
523 * @bi: single binding information.
529 struct vmw_ctx_bindinfo_view *binding = in vmw_binding_scrub_render_target() local
530 container_of(bi, typeof(*binding), bi); in vmw_binding_scrub_render_target()
547 cmd->body.type = binding->slot; in vmw_binding_scrub_render_target()
557 * vmw_binding_scrub_texture - scrub a texture binding from a context.
559 * @bi: single binding information.
568 struct vmw_ctx_bindinfo_tex *binding = in vmw_binding_scrub_texture() local
569 container_of(bi, typeof(*binding), bi); in vmw_binding_scrub_texture()
589 cmd->body.s1.stage = binding->texture_stage; in vmw_binding_scrub_texture()
598 * vmw_binding_scrub_dx_shader - scrub a dx shader binding from a context.
600 * @bi: single binding information.
605 struct vmw_ctx_bindinfo_shader *binding = in vmw_binding_scrub_dx_shader() local
606 container_of(bi, typeof(*binding), bi); in vmw_binding_scrub_dx_shader()
621 cmd->body.type = binding->shader_slot + SVGA3D_SHADERTYPE_MIN; in vmw_binding_scrub_dx_shader()
629 * vmw_binding_scrub_cb - scrub a constant buffer binding from a context.
631 * @bi: single binding information.
636 struct vmw_ctx_bindinfo_cb *binding = in vmw_binding_scrub_cb() local
637 container_of(bi, typeof(*binding), bi); in vmw_binding_scrub_cb()
653 cmd->body.slot = binding->slot; in vmw_binding_scrub_cb()
654 cmd->body.type = binding->shader_slot + SVGA3D_SHADERTYPE_MIN; in vmw_binding_scrub_cb()
656 cmd->body.offsetInBytes = binding->offset; in vmw_binding_scrub_cb()
657 cmd->body.sizeInBytes = binding->size; in vmw_binding_scrub_cb()
670 * vmw_collect_view_ids - Build view id data for a view binding command
674 * @bi: Pointer to where the binding info array is stored in @cbs
678 * Stops at the first non-existing binding in the @bi array.
705 * vmw_collect_dirty_view_ids - Build view id data for a view binding command
708 * @bi: Pointer to where the binding info array is stored in @cbs
716 * binding, and @cbs->bind_cmd_buffer contains the command data.
747 * vmw_binding_emit_set_sr - Issue delayed DX shader resource binding commands
774 " resource binding.\n"); in vmw_emit_set_sr()
793 * vmw_binding_emit_set_rt - Issue delayed DX rendertarget binding commands
813 " binding.\n"); in vmw_emit_set_rt()
834 * vmw_collect_so_targets - Build SVGA3dSoTarget data for a binding command
838 * @bi: Pointer to where the binding info array is stored in @cbs
842 * Stops at the first non-existing binding in the @bi array.
877 * vmw_binding_emit_set_so - Issue delayed streamout binding commands
900 " binding.\n"); in vmw_emit_set_so()
915 * vmw_binding_emit_dirty_ps - Issue delayed per shader binding commands
945 * @bi: Pointer to where the binding info array is stored in @cbs
953 * binding, and @cbs->bind_cmd_buffer contains the command data.
991 * vmw_binding_emit_set_vb - Issue delayed vertex buffer binding commands
1017 " binding.\n"); in vmw_emit_set_vb()
1035 * vmw_binding_emit_dirty - Issue delayed binding commands
1039 * This function issues the delayed binding commands that arise from
1040 * previous scrub / unscrub calls. These binding commands are typically
1079 * vmw_binding_scrub_sr - Schedule a dx shaderresource binding
1082 * @bi: single binding information.
1101 * vmw_binding_scrub_dx_rt - Schedule a dx rendertarget binding
1104 * @bi: single binding information.
1118 * vmw_binding_scrub_so - Schedule a dx streamoutput buffer binding
1121 * @bi: single binding information.
1135 * vmw_binding_scrub_vb - Schedule a dx vertex buffer binding
1138 * @bi: single binding information.
1155 * vmw_binding_scrub_ib - scrub a dx index buffer binding from a context
1157 * @bi: single binding information.
1162 struct vmw_ctx_bindinfo_ib *binding = in vmw_binding_scrub_ib() local
1163 container_of(bi, typeof(*binding), bi); in vmw_binding_scrub_ib()
1173 "binding.\n"); in vmw_binding_scrub_ib()
1180 cmd->body.format = binding->format; in vmw_binding_scrub_ib()
1181 cmd->body.offset = binding->offset; in vmw_binding_scrub_ib()
1243 * vmw_binding_state_list - Get the binding list of a
1248 * Returns the binding list which can be used to traverse through the bindings
1261 * Drops all bindings registered in @cbs. No device binding actions are