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
70 * struct vmw_ctx_binding_state - per context binding state
76 * @ds_view: Depth-stencil view binding.
79 * @index_buffer: Index buffer binding.
83 * @dirty: Bitmap tracking per binding-type changes that have not yet
85 * @dirty_vb: Bitmap tracking individual vertex buffer binding changes that
87 * @bind_cmd_buffer: Scratch space used to construct binding commands.
88 * @bind_cmd_count: Number of binding command data entries in @bind_cmd_buffer
90 * device binding slot of the first command data entry in @bind_cmd_buffer.
140 * struct vmw_binding_info - Per binding type information for the binding
143 * @size: The size of the struct binding derived from a struct vmw_ctx_bindinfo.
145 * of struct bindings for the binding type.
146 * @scrub_func: Pointer to the scrub function for this binding type.
148 * Holds static information to help optimize the binding manager and avoid
159 * location of the struct vmw_ctx_bindinfo slots for each binding type.
274 * context binding state tracker.
276 * @cbs: The context binding state tracker.
280 * binding state tracker. If there are no active bindings, this function
298 * @bt: The binding type.
299 * @shader_slot: The shader slot of the binding. If none, then set to 0.
300 * @slot: The slot of the binding.
313 * vmw_binding_drop: Stop tracking a context binding
315 * @bi: Pointer to binding tracker storage.
317 * Stops tracking a context binding, and re-initializes its storage.
318 * Typically used when the context binding is replaced with a binding to
330 * vmw_binding_add: Start tracking a context binding
332 * @cbs: Pointer to the context binding state tracker.
333 * @bi: Information about the binding to track.
334 * @shader_slot: The shader slot of the binding.
335 * @slot: The slot of the binding.
337 * Starts tracking the binding in the context binding
358 * vmw_binding_cb_offset_update: Update the offset of a cb binding
360 * @cbs: Pointer to the context binding state tracker.
361 * @shader_slot: The shader slot of the binding.
362 * @slot: The slot of the binding.
363 * @offsetInBytes: The new offset of the binding.
365 * Updates the offset of an existing cb binding in the context binding
380 * @cbs: Pointer to the context binding state tracker.
391 * vmw_binding_transfer: Transfer a context binding tracking entry.
393 * @cbs: Pointer to the persistent context binding state tracker.
394 * @from: Staged binding info built during execbuf
395 * @bi: Information about the binding to track.
423 * @cbs: Pointer to the context binding state tracker.
426 * context binding state tracker. Then re-initializes the whole structure.
441 * @cbs: Pointer to the context binding state tracker.
444 * context binding state tracker.
463 * resource binding list
465 * @head: list head of resource binding list
481 * resource binding list
483 * @head: list head of resource binding list
510 * vmw_binding_state_commit - Commit staged binding info
512 * @to: Staged binding info area to copy into to.
513 * @from: Staged binding info built during execbuf.
515 * Transfers binding info from a temporary structure
538 * @cbs: Pointer to the context binding state tracker.
540 * Walks through the context binding list and rebinds all scrubbed
567 * vmw_binding_scrub_shader - scrub a shader binding from a context.
569 * @bi: single binding information.
574 struct vmw_ctx_bindinfo_shader *binding = in vmw_binding_scrub_shader() local
575 container_of(bi, typeof(*binding), bi); in vmw_binding_scrub_shader()
589 cmd->body.type = binding->shader_slot + SVGA3D_SHADERTYPE_MIN; in vmw_binding_scrub_shader()
597 * vmw_binding_scrub_render_target - scrub a render target binding
600 * @bi: single binding information.
606 struct vmw_ctx_bindinfo_view *binding = in vmw_binding_scrub_render_target() local
607 container_of(bi, typeof(*binding), bi); in vmw_binding_scrub_render_target()
621 cmd->body.type = binding->slot; in vmw_binding_scrub_render_target()
631 * vmw_binding_scrub_texture - scrub a texture binding from a context.
633 * @bi: single binding information.
642 struct vmw_ctx_bindinfo_tex *binding = in vmw_binding_scrub_texture() local
643 container_of(bi, typeof(*binding), bi); in vmw_binding_scrub_texture()
660 cmd->body.s1.stage = binding->texture_stage; in vmw_binding_scrub_texture()
669 * vmw_binding_scrub_dx_shader - scrub a dx shader binding from a context.
671 * @bi: single binding information.
676 struct vmw_ctx_bindinfo_shader *binding = in vmw_binding_scrub_dx_shader() local
677 container_of(bi, typeof(*binding), bi); in vmw_binding_scrub_dx_shader()
690 cmd->body.type = binding->shader_slot + SVGA3D_SHADERTYPE_MIN; in vmw_binding_scrub_dx_shader()
698 * vmw_binding_scrub_cb - scrub a constant buffer binding from a context.
700 * @bi: single binding information.
705 struct vmw_ctx_bindinfo_cb *binding = in vmw_binding_scrub_cb() local
706 container_of(bi, typeof(*binding), bi); in vmw_binding_scrub_cb()
719 cmd->body.slot = binding->slot; in vmw_binding_scrub_cb()
720 cmd->body.type = binding->shader_slot + SVGA3D_SHADERTYPE_MIN; in vmw_binding_scrub_cb()
722 cmd->body.offsetInBytes = binding->offset; in vmw_binding_scrub_cb()
723 cmd->body.sizeInBytes = binding->size; in vmw_binding_scrub_cb()
736 * vmw_collect_view_ids - Build view id data for a view binding command
740 * @biv: Pointer to where the binding info array is stored in @cbs
744 * Stops at the first non-existing binding in the @bi array.
769 * vmw_collect_dirty_view_ids - Build view id data for a view binding command
772 * @bi: Pointer to where the binding info array is stored in @cbs
780 * binding, and @cbs->bind_cmd_buffer contains the command data.
811 * vmw_emit_set_sr - Issue delayed DX shader resource binding commands
814 * @shader_slot: The shader slot of the binding.
855 * vmw_emit_set_rt - Issue delayed DX rendertarget binding commands
893 * vmw_collect_so_targets - Build SVGA3dSoTarget data for a binding command
897 * @biso: Pointer to where the binding info array is stored in @cbs
901 * Stops at the first non-existing binding in the @bi array.
934 * vmw_emit_set_so_target - Issue delayed streamout binding commands
969 * vmw_binding_emit_dirty_ps - Issue delayed per shader binding commands
999 * @bi: Pointer to where the binding info array is stored in @cbs
1007 * binding, and @cbs->bind_cmd_buffer contains the command data.
1045 * vmw_emit_set_vb - Issue delayed vertex buffer binding commands
1146 * vmw_binding_emit_dirty - Issue delayed binding commands
1150 * This function issues the delayed binding commands that arise from
1151 * previous scrub / unscrub calls. These binding commands are typically
1196 * vmw_binding_scrub_sr - Schedule a dx shaderresource binding
1199 * @bi: single binding information.
1218 * vmw_binding_scrub_dx_rt - Schedule a dx rendertarget binding
1221 * @bi: single binding information.
1235 * vmw_binding_scrub_so_target - Schedule a dx streamoutput buffer binding
1238 * @bi: single binding information.
1252 * vmw_binding_scrub_vb - Schedule a dx vertex buffer binding
1255 * @bi: single binding information.
1272 * vmw_binding_scrub_ib - scrub a dx index buffer binding from a context
1274 * @bi: single binding information.
1279 struct vmw_ctx_bindinfo_ib *binding = in vmw_binding_scrub_ib() local
1280 container_of(bi, typeof(*binding), bi); in vmw_binding_scrub_ib()
1295 cmd->body.format = binding->format; in vmw_binding_scrub_ib()
1296 cmd->body.offset = binding->offset; in vmw_binding_scrub_ib()
1325 * vmw_binding_scrub_so - Scrub a streamoutput binding from context.
1326 * @bi: Single binding information.
1331 struct vmw_ctx_bindinfo_so *binding = in vmw_binding_scrub_so() local
1332 container_of(bi, typeof(*binding), bi); in vmw_binding_scrub_so()
1385 * vmw_binding_state_list - Get the binding list of a
1390 * Returns the binding list which can be used to traverse through the bindings
1403 * Drops all bindings registered in @cbs. No device binding actions are
1415 * vmw_binding_dirtying - Return whether a binding type is dirtying its resource
1416 * @binding_type: The binding type
1419 * context binding referencing it, we need to determine whether that resource
1424 * Return: Whether the binding type dirties the resource its binding points to.