summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_fs.h
diff options
context:
space:
mode:
authorConnor Abbott <cwabbott0@gmail.com>2015-06-25 16:22:26 -0700
committerConnor Abbott <cwabbott0@gmail.com>2015-06-30 11:18:27 -0700
commit0ecdf04060518149e99a098caf4f6025fd6482a4 (patch)
tree1bc2a9350ed7d27d8fc2fc36c531849db7a4d2a6 /src/mesa/drivers/dri/i965/brw_fs.h
parent864907e2f14523c130e6ff24c081789bb079bae1 (diff)
downloadexternal_mesa3d-0ecdf04060518149e99a098caf4f6025fd6482a4.zip
external_mesa3d-0ecdf04060518149e99a098caf4f6025fd6482a4.tar.gz
external_mesa3d-0ecdf04060518149e99a098caf4f6025fd6482a4.tar.bz2
i965/fs: emit constants only once
Before, we would lazily emit a MOV whenever we encountered a use of a constant. Now that we have a dedicated file for SSA values, we can instead only emit the MOV's once, which is more consistent and prevents us from relying on CSE to re-combine the constants when they aren't absorbed into the instruction. total instructions in shared programs: 6078991 -> 6073118 (-0.10%) instructions in affected programs: 402221 -> 396348 (-1.46%) helped: 1527 HURT: 0 GAINED: 8 LOST: 2 v2: split this out from the previous commit (Jason) Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_fs.h')
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
index 8170f2a..f20b540 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -249,6 +249,8 @@ public:
void nir_emit_block(nir_block *block);
void nir_emit_instr(nir_instr *instr);
void nir_emit_alu(const brw::fs_builder &bld, nir_alu_instr *instr);
+ void nir_emit_load_const(const brw::fs_builder &bld,
+ nir_load_const_instr *instr);
void nir_emit_undef(const brw::fs_builder &bld,
nir_ssa_undef_instr *instr);
void nir_emit_intrinsic(const brw::fs_builder &bld,