Data Fields | |
void(* | destroy )(struct brw_winsys *) |
unsigned *(* | batch_start )(struct brw_winsys *sws, unsigned dwords, unsigned relocs) |
Reserve space on batch buffer. | |
void(* | batch_dword )(struct brw_winsys *sws, unsigned dword) |
void(* | batch_reloc )(struct brw_winsys *sws, struct pipe_buffer *buf, unsigned access_flags, unsigned delta) |
Emit a relocation to a buffer. | |
void(* | batch_end )(struct brw_winsys *sws) |
void(* | batch_flush )(struct brw_winsys *sws, struct pipe_fence_handle **fence) |
Flush the batch buffer. | |
void(* | buffer_subdata_typed )(struct brw_winsys *sws, struct pipe_buffer *buf, unsigned long offset, unsigned long size, const void *data, unsigned data_type) |
unsigned(* | get_buffer_offset )(struct brw_winsys *sws, struct pipe_buffer *buf, unsigned flags) |
It is an over-simple batchbuffer mechanism. Will want to improve the performance of this, perhaps based on the cmdstream stuff. It would be pretty impossible to implement swz on top of this interface.
Will also need additions/changes to implement static/dynamic indirect state.
Definition at line 113 of file brw_winsys.h.
void(* brw_winsys::destroy)(struct brw_winsys *) |
unsigned*(* brw_winsys::batch_start)(struct brw_winsys *sws, unsigned dwords, unsigned relocs) |
Reserve space on batch buffer.
Returns a null pointer if there is insufficient space in the batch buffer to hold the requested number of dwords and relocations.
The number of dwords should also include the number of relocations.
void(* brw_winsys::batch_dword)(struct brw_winsys *sws, unsigned dword) |
void(* brw_winsys::batch_reloc)(struct brw_winsys *sws, struct pipe_buffer *buf, unsigned access_flags, unsigned delta) |
Emit a relocation to a buffer.
Used not only when the buffer addresses are not pinned, but also to ensure refered buffers will not be destroyed until the current batch buffer execution is finished.
The access flags is a combination of I915_BUFFER_ACCESS_WRITE and I915_BUFFER_ACCESS_READ macros.
void(* brw_winsys::batch_end)(struct brw_winsys *sws) |
void(* brw_winsys::batch_flush)(struct brw_winsys *sws, struct pipe_fence_handle **fence) |
Flush the batch buffer.
Fence argument must point to NULL or to a previous fence, and the caller must call fence_reference when done with the fence.
void(* brw_winsys::buffer_subdata_typed)(struct brw_winsys *sws, struct pipe_buffer *buf, unsigned long offset, unsigned long size, const void *data, unsigned data_type) |
unsigned(* brw_winsys::get_buffer_offset)(struct brw_winsys *sws, struct pipe_buffer *buf, unsigned flags) |