aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_fs.h
diff options
context:
space:
mode:
authorKristian Høgsberg <[email protected]>2014-07-07 15:27:17 -0700
committerKristian Høgsberg <[email protected]>2014-08-15 11:25:47 -0700
commitf9dc7aabb3273d6d8a54c6778a5695a8527f4454 (patch)
tree5c3cebf3753a1ab35ac8a30edcfb5f59418c2753 /src/mesa/drivers/dri/i965/brw_fs.h
parentba4507576c803cdb1aba4e317662a4bde79bf826 (diff)
i965: Add optimization pass to let us use the replicate data message
The data port has a SIMD16 'replicate data' message, which lets us write the same color for all 16 pixels by sending the four floats in the lower half of a register instead of sending 4 times 16 identical component values in 8 registers. The message comes with a lot of restrictions and could be made generally useful by recognizing when those restriction are satisfied. For now, this lets us enable the optimization when we know it's safe, but we don't enable it by default. The optimization works for simple color clear shaders only, but does recognized and support multiple render targets. Signed-off-by: Kristian Høgsberg <[email protected]> Acked-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_fs.h')
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
index 0f8fb2d8c55..9e5b5d7eff3 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -355,6 +355,8 @@ public:
void lower_uniform_pull_constant_loads();
bool lower_load_payload();
+ void try_rep_send();
+
void push_force_uncompressed();
void pop_force_uncompressed();
@@ -590,6 +592,7 @@ private:
GLuint nr);
void generate_fb_write(fs_inst *inst);
void generate_blorp_fb_write(fs_inst *inst);
+ void generate_rep_fb_write(fs_inst *inst);
void generate_pixel_xy(struct brw_reg dst, bool is_x);
void generate_linterp(fs_inst *inst, struct brw_reg dst,
struct brw_reg *src);