summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2017-08-28 15:57:20 -0700
committerKenneth Graunke <kenneth@whitecape.org>2017-08-30 16:59:21 -0700
commit225425111fee082e3be14c22c256314b85724ef8 (patch)
tree92be896d81dae08afb50b8da7fa1428bbdc7e2f5 /src/mesa
parentfc20df830cc1f3bfd2d04c7927ba63d606cfc89f (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.c21
-rw-r--r--src/mesa/drivers/dri/i965/brw_blorp.h8
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