[Mesa-dev] [PATCH 0/5] Using MAC to optimize LRP on i965 gen < 6
Juha-Pekka Heikkila
juhapekka.heikkila at gmail.com
Fri Mar 28 06:28:28 PDT 2014
v3:
I took out accumulator flag from backend_instruction::has_side_effects()
as Matt suggested and rebased my patches on top of master where had shown up
Matt's patches which were overlapping a bit on dead code elimination.
This set does not do anything for the MACH anomaly on vec4_visitor::visit
and fs_visitor:::visit, I will reverify it and do something about it later
if needed. I tried these on Ironlake maching and did not see any regression
on Piglit quick set.
v2:
Thanks Matt, Eric and Kenneth for the comments, I did rework my set to look
a bit different. I noticed Matt has partially overlapping set of patches about
dead code elimination and as for my set I did not have access this week
to Ironlake machine thus calling this 'RFC'y set. Kenneth, I think pedantic
is good :) I hope you don't mind I took your versions of commit messages
almost directly as I probably could not come up with anything better.
The biggest differences are that I moved the accumulator flag to
backend_instruction class which is accessible from both vec4 and fs. This
also allow to see the flag in scheduler easily via
backend_instruction::has_side_effects() as well as remove the switch/cases
for ADDC/SUBB/MACH from dead code elimination. Also the fs side should be
working now, this was anyhow almost cut'n'paste type thing. As for correctly
scheduling instructions has_side_effects returning true when writes_accumulator
is true seems to make everything ok without need to touch inside
calculate_deps()
I did run these new LRP pieces on my Ivybridge machine and with Piglit I don't
see any regressions on glsl tests. Next week I probably can try with Ironlake.
Juha-Pekka Heikkila (5):
i965: Add writes_accumulator flag
i965/vec4: Add support for the MAC instruction.
i965/vec4: Change vec4_visitor::emit_lrp to use MAC for gen<6
i965/fs: Add support for the MAC instruction.
i965/fs: Change fs_visitor::emit_lrp to use MAC for gen<6
src/mesa/drivers/dri/i965/brw_eu.h | 1 +
src/mesa/drivers/dri/i965/brw_fs.cpp | 27 +++++++++------
src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 10 +++---
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 11 +++---
.../drivers/dri/i965/brw_schedule_instructions.cpp | 8 ++---
src/mesa/drivers/dri/i965/brw_shader.h | 1 +
src/mesa/drivers/dri/i965/brw_vec4.cpp | 17 +++------
src/mesa/drivers/dri/i965/brw_vec4_generator.cpp | 10 +++---
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 40 ++++++++++++----------
9 files changed, 61 insertions(+), 64 deletions(-)
--
1.8.1.2
More information about the mesa-dev
mailing list