Mesa (master): intel/fs: Take into account amount of data read in spilling cost heuristic.

Francisco Jerez currojerez at kemper.freedesktop.org
Mon Apr 24 18:06:59 UTC 2017


Module: Mesa
Branch: master
Commit: 58324389be7bc7c5e10093b9cc0a8efa9b4c93a9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=58324389be7bc7c5e10093b9cc0a8efa9b4c93a9

Author: Francisco Jerez <currojerez at riseup.net>
Date:   Thu Apr 20 11:42:27 2017 -0700

intel/fs: Take into account amount of data read in spilling cost heuristic.

Until now the spilling cost calculation was neglecting the amount of
data read from the register during the spilling cost calculation.
This caused it to make suboptimal decisions in some cases leading to
higher memory bandwidth usage than necessary.

Improves Unigine Heaven performance by ~4% on BDW, reversing an
unintended FPS regression from my previous commit
147e71242ce539ff28e282f009c332818c35f5ac with n=12 and statistical
significance 5%.  In addition SynMark2 OglCSDof performance is
improved by an additional ~5% on SKL, and a Kerbal Space Program
apitrace around the Moho planet I can provide on request improves by
~20%.

Cc: <mesa-stable at lists.freedesktop.org>
Reviewed-by: Plamena Manolova <plamena.manolova at intel.com>
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>

---

 src/intel/compiler/brw_fs_reg_allocate.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/intel/compiler/brw_fs_reg_allocate.cpp b/src/intel/compiler/brw_fs_reg_allocate.cpp
index 2d4d46ef33..ec8e116cb3 100644
--- a/src/intel/compiler/brw_fs_reg_allocate.cpp
+++ b/src/intel/compiler/brw_fs_reg_allocate.cpp
@@ -822,7 +822,7 @@ fs_visitor::choose_spill_reg(struct ra_graph *g)
    foreach_block_and_inst(block, fs_inst, inst, cfg) {
       for (unsigned int i = 0; i < inst->sources; i++) {
 	 if (inst->src[i].file == VGRF)
-            spill_costs[inst->src[i].nr] += block_scale;
+            spill_costs[inst->src[i].nr] += regs_read(inst, i) * block_scale;
       }
 
       if (inst->dst.file == VGRF)




More information about the mesa-commit mailing list