Skip to content

lima/ppir: some branch optimizations

Erico Nunes requested to merge enunes/mesa:lima-branch-rework1 into main

Can probably still be further improved, but these are some relatively cheap/trivial cases that can benefit many shaders.

shader-db:

instructions helped:   shaders/unity/38.shader_test MESA_SHADER_FRAGMENT: 228 -> 227 (-0.44%)
instructions helped:   shaders/unity/39.shader_test MESA_SHADER_FRAGMENT: 216 -> 215 (-0.46%)
instructions helped:   shaders/tesseract/441.shader_test MESA_SHADER_FRAGMENT: 198 -> 197 (-0.51%)
instructions helped:   shaders/tesseract/437.shader_test MESA_SHADER_FRAGMENT: 195 -> 194 (-0.51%)
instructions helped:   shaders/unity/40.shader_test MESA_SHADER_FRAGMENT: 190 -> 189 (-0.53%)
instructions helped:   shaders/tesseract/429.shader_test MESA_SHADER_FRAGMENT: 177 -> 176 (-0.56%)
instructions helped:   shaders/tesseract/425.shader_test MESA_SHADER_FRAGMENT: 174 -> 173 (-0.57%)
instructions helped:   shaders/tesseract/417.shader_test MESA_SHADER_FRAGMENT: 156 -> 155 (-0.64%)
instructions helped:   shaders/glamor/85.shader_test MESA_SHADER_FRAGMENT: 153 -> 152 (-0.65%)
instructions helped:   shaders/tesseract/413.shader_test MESA_SHADER_FRAGMENT: 153 -> 152 (-0.65%)
instructions helped:   shaders/tesseract/405.shader_test MESA_SHADER_FRAGMENT: 135 -> 134 (-0.74%)
instructions helped:   shaders/tesseract/401.shader_test MESA_SHADER_FRAGMENT: 132 -> 131 (-0.76%)
instructions helped:   shaders/tesseract/393.shader_test MESA_SHADER_FRAGMENT: 114 -> 113 (-0.88%)
instructions helped:   shaders/tesseract/389.shader_test MESA_SHADER_FRAGMENT: 111 -> 110 (-0.90%)
instructions helped:   shaders/tesseract/381.shader_test MESA_SHADER_FRAGMENT: 93 -> 92 (-1.08%)
instructions helped:   shaders/tesseract/377.shader_test MESA_SHADER_FRAGMENT: 90 -> 89 (-1.11%)
instructions helped:   shaders/tesseract/369.shader_test MESA_SHADER_FRAGMENT: 72 -> 71 (-1.39%)
instructions helped:   shaders/tesseract/365.shader_test MESA_SHADER_FRAGMENT: 69 -> 68 (-1.45%)
instructions helped:   shaders/tesseract/357.shader_test MESA_SHADER_FRAGMENT: 52 -> 51 (-1.92%)
instructions helped:   shaders/warzone2100/1.shader_test MESA_SHADER_FRAGMENT: 52 -> 51 (-1.92%)
instructions helped:   shaders/tesseract/353.shader_test MESA_SHADER_FRAGMENT: 51 -> 50 (-1.96%)
instructions helped:   shaders/chromeos/24.shader_test MESA_SHADER_FRAGMENT: 47 -> 46 (-2.13%)
instructions helped:   shaders/unity/8.shader_test MESA_SHADER_FRAGMENT: 46 -> 45 (-2.17%)
instructions helped:   shaders/glamor/88.shader_test MESA_SHADER_FRAGMENT: 98 -> 95 (-3.06%)
instructions helped:   shaders/chromeos/21.shader_test MESA_SHADER_FRAGMENT: 48 -> 46 (-4.17%)
instructions helped:   shaders/glamor/82.shader_test MESA_SHADER_FRAGMENT: 46 -> 44 (-4.35%)
instructions helped:   shaders/warzone2100/4.shader_test MESA_SHADER_FRAGMENT: 10 -> 9 (-10.00%)

total instructions in shared programs: 16838 -> 16807 (-0.18%)
instructions in affected programs: 3106 -> 3075 (-1.00%)
helped: 27
HURT: 0
helped stats (abs) min: 1 max: 3 x̄: 1.15 x̃: 1
helped stats (rel) min: 0.44% max: 10.00% x̄: 1.69% x̃: 0.90%
95% mean confidence interval for instructions value: -1.33 -0.97
95% mean confidence interval for instructions %-change: -2.47% -0.90%
Instructions are helped.

On my larger collection of shaders (collected from deqp, piglit and some other applications)

total instructions in shared programs: 282139 -> 281660 (-0.17%)
instructions in affected programs: 12541 -> 12062 (-3.82%)
helped: 212
HURT: 0
helped stats (abs) min: 1 max: 16 x̄: 2.26 x̃: 2
helped stats (rel) min: 0.36% max: 24.14% x̄: 7.89% x̃: 6.67%
95% mean confidence interval for instructions value: -2.58 -1.94
95% mean confidence interval for instructions %-change: -8.65% -7.13%
Instructions are helped.

With just patch 1 it gives me helped: 108 so it is about half from each.

Edited by Erico Nunes

Merge request reports