diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2017-08-28 15:57:20 -0700 |
---|---|---|
committer | Kenneth Graunke <kenneth@whitecape.org> | 2017-08-30 16:59:21 -0700 |
commit | 225425111fee082e3be14c22c256314b85724ef8 (patch) | |
tree | 92be896d81dae08afb50b8da7fa1428bbdc7e2f5 /src/mesa | |
parent | fc20df830cc1f3bfd2d04c7927ba63d606cfc89f (diff) |
i965: Add a brw_blorp_copy_buffers() command.
This exposes the new blorp_copy_buffer() functionality to i965.
It should be a drop-in replacement for intel_emit_linear_blit()
(other than the arguments being backwards, for consistency with BLORP).
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_blorp.c | 21 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_blorp.h | 8 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_blorp.c b/src/mesa/drivers/dri/i965/brw_blorp.c index 277ffda4fd5..4c6ae369196 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp.c +++ b/src/mesa/drivers/dri/i965/brw_blorp.c @@ -434,6 +434,27 @@ brw_blorp_copy_miptrees(struct brw_context *brw, dst_aux_usage); } +void +brw_blorp_copy_buffers(struct brw_context *brw, + struct brw_bo *src_bo, + unsigned src_offset, + struct brw_bo *dst_bo, + unsigned dst_offset, + unsigned size) +{ + DBG("%s %d bytes from %p[%d] to %p[%d]", + __func__, size, src_bo, src_offset, dst_bo, dst_offset); + + struct blorp_batch batch; + struct blorp_address src = { .buffer = src_bo, .offset = src_offset }; + struct blorp_address dst = { .buffer = dst_bo, .offset = dst_offset }; + + blorp_batch_init(&brw->blorp, &batch, brw, 0); + blorp_buffer_copy(&batch, src, dst, size); + blorp_batch_finish(&batch); +} + + static struct intel_mipmap_tree * find_miptree(GLbitfield buffer_bit, struct intel_renderbuffer *irb) { diff --git a/src/mesa/drivers/dri/i965/brw_blorp.h b/src/mesa/drivers/dri/i965/brw_blorp.h index c65a68a53d3..cf781ec53cb 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp.h +++ b/src/mesa/drivers/dri/i965/brw_blorp.h @@ -60,6 +60,14 @@ brw_blorp_copy_miptrees(struct brw_context *brw, unsigned src_width, unsigned src_height); void +brw_blorp_copy_buffers(struct brw_context *brw, + struct brw_bo *src_bo, + unsigned src_offset, + struct brw_bo *dst_bo, + unsigned dst_offset, + unsigned size); + +void brw_blorp_clear_color(struct brw_context *brw, struct gl_framebuffer *fb, GLbitfield mask, bool partial_clear, bool encode_srgb); void |