[Mesa-dev] [PATCH v2 0/1] Do not require all components to apply opt_vector_float()
Juan A. Suarez Romero
jasuarez at igalia.com
Wed Dec 2 07:43:08 PST 2015
This patch, based on Matt suggestion, replaces the former two ones, as it gets
Basically, so far opt_vector_float() is only applied when the 4 components of
the register are written with MOV. This patch changes the behaviour so it
doesn't require to write the 4 components to apply it.
Results obtained with shader-db tests are:
total instructions in shared programs: 6819484 -> 6811698 (-0.11%)
instructions in affected programs: 387245 -> 379459 (-2.01%)
total loops in shared programs: 1971 -> 1971 (0.00%)
Which are better than the ones obtained in the first version.
Couple of final comments:
* In the original version Matt commented about a bug in
opt_dead_code_eliminate(). As he already wrote a patch, I'm just waiting for
him to send it.
* Matt commented also about a possible improvement in an example that allows
evaluating at compile-time. As it is a different optimization, I'm not
covering it on this patch, and rather letting it for a future improvement.
* I commented about a wrong application of opt_vector_float() in an example Matt
found. He told that probably it lacks resetting last_reg to -1. This patch is
covering that error.
Juan A. Suarez Romero (1):
i965: add opportunistic behaviour to opt_vector_float()
src/mesa/drivers/dri/i965/brw_vec4.cpp | 60 +++++++++++++++++++++-------------
src/mesa/drivers/dri/i965/brw_vec4.h | 3 ++
2 files changed, 41 insertions(+), 22 deletions(-)
More information about the mesa-dev