diff options
author | Kristian Høgsberg <[email protected]> | 2014-07-07 15:27:17 -0700 |
---|---|---|
committer | Kristian Høgsberg <[email protected]> | 2014-08-15 11:25:47 -0700 |
commit | f9dc7aabb3273d6d8a54c6778a5695a8527f4454 (patch) | |
tree | 5c3cebf3753a1ab35ac8a30edcfb5f59418c2753 /src/mesa/drivers/dri/i965/brw_fs.h | |
parent | ba4507576c803cdb1aba4e317662a4bde79bf826 (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.h | 3 |
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); |