From ecf795615c973d546737c5b0dd6abb846e7d3aad Mon Sep 17 00:00:00 2001 From: Topi Pohjolainen Date: Mon, 2 Dec 2013 14:12:39 +0200 Subject: [PATCH] i965/blorp: move emission of rt-write into eu-emitter Signed-off-by: Topi Pohjolainen Reviewed-by: Paul Berry --- src/mesa/drivers/dri/i965/brw_blorp_blit.cpp | 15 +++++---------- .../drivers/dri/i965/brw_blorp_blit_eu.cpp | 18 ++++++++++++++++++ src/mesa/drivers/dri/i965/brw_blorp_blit_eu.h | 5 +++++ 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp index 034a82bc1b8..4bbdf3da6e1 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp +++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp @@ -1954,16 +1954,11 @@ brw_blorp_blit_program::render_target_write() } /* Now write to the render target and terminate the thread */ - brw_fb_WRITE(&func, - 16 /* dispatch_width */, - base_mrf /* msg_reg_nr */, - mrf_rt_write /* src0 */, - BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE, - BRW_BLORP_RENDERBUFFER_BINDING_TABLE_INDEX, - mrf_offset /* msg_length. TODO: Should be smaller for non-RGBA formats. */, - 0 /* response_length */, - true /* eot */, - use_header); + emit_render_target_write( + mrf_rt_write, + base_mrf, + mrf_offset /* msg_length. TODO: Should be smaller for non-RGBA formats. */, + use_header); } diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit_eu.cpp b/src/mesa/drivers/dri/i965/brw_blorp_blit_eu.cpp index ff45b6af23a..df8d63d94c4 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp_blit_eu.cpp +++ b/src/mesa/drivers/dri/i965/brw_blorp_blit_eu.cpp @@ -134,3 +134,21 @@ brw_blorp_eu_emitter::emit_texture_lookup(const struct brw_reg &dst, BRW_SAMPLER_SIMD_MODE_SIMD16, BRW_SAMPLER_RETURN_FORMAT_FLOAT32); } + +void +brw_blorp_eu_emitter::emit_render_target_write(const struct brw_reg &src0, + unsigned msg_reg_nr, + unsigned msg_length, + bool use_header) +{ + brw_fb_WRITE(&func, + 16 /* dispatch_width */, + msg_reg_nr, + src0, + BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE, + BRW_BLORP_RENDERBUFFER_BINDING_TABLE_INDEX, + msg_length, + 0 /* response_length */, + true /* eot */, + use_header); +} diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit_eu.h b/src/mesa/drivers/dri/i965/brw_blorp_blit_eu.h index 9e7c43f88f8..5f0c8cf7f8d 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp_blit_eu.h +++ b/src/mesa/drivers/dri/i965/brw_blorp_blit_eu.h @@ -47,6 +47,11 @@ protected: unsigned base_mrf, unsigned msg_length); + void emit_render_target_write(const struct brw_reg &src0, + unsigned msg_reg_nr, + unsigned msg_length, + bool use_header); + void *mem_ctx; struct brw_compile func; }; -- 2.30.2