intel/fs: improve rematerialization of sampler/surface handles
What does this MR do and why?
This MR helps better rematerializing of sampler & surface handles.
Good results on 2 apps :
Cyberpunk 2077 :
Totals from 7262 (68.88% of 10543) affected shaders:
Instrs: 6366132 -> 6088588 (-4.36%); split: -4.39%, +0.03%
Cycles: 131444597 -> 128815922 (-2.00%); split: -2.67%, +0.67%
Subgroup size: 90368 -> 90432 (+0.07%)
Spill count: 62 -> 50 (-19.35%)
Fill count: 56 -> 42 (-25.00%)
Max live registers: 425523 -> 417706 (-1.84%); split: -1.87%, +0.04%
Max dispatch width: 64400 -> 64472 (+0.11%); split: +0.93%, -0.82%
Gaining 60 SIMD16/SIMD32 shaders, loosing 33
Strange Brigade :
Totals from 2137 (53.13% of 4022) affected shaders:
Instrs: 1543474 -> 1460956 (-5.35%); split: -5.35%, +0.00%
Cycles: 22266236 -> 21899786 (-1.65%); split: -2.32%, +0.68%
Subgroup size: 25328 -> 25344 (+0.06%)
Max live registers: 121071 -> 119135 (-1.60%); split: -1.72%, +0.12%
Max dispatch width: 17232 -> 17936 (+4.09%); split: +4.46%, -0.37%
Gaining 138 SIMD16/SIMD32 shaders, loosing 4
On app slightly negatively affected :
Dota2 :
Totals from 232 (15.42% of 1505) affected shaders:
Instrs: 30029 -> 28194 (-6.11%)
Cycles: 385155 -> 371422 (-3.57%); split: -3.59%, +0.02%
Max live registers: 8131 -> 8119 (-0.15%)
Max dispatch width: 2256 -> 2160 (-4.26%)
Loosing 6 SIMD32 shaders
Edited by Lionel Landwerlin