[Mesa-dev] [PATCH v7 0/6] mesa/st: glsl_to_tgsi: improved temp-reg lifetime estimation
Gert Wollny
gw.fossdev at gmail.com
Mon Jul 31 16:14:27 UTC 2017
Hi,
the patch no longer applies to mesa master. I've pushed the rebased
patch set to my github mirror (see below), but should I also send the
corrected patches here?
Best,
Gert
Am Montag, den 17.07.2017, 17:47 +0200 schrieb Gert Wollny:
> Hello Nicolai,
>
> many thanks for the review. With this new patch set I've implemented
> most of your
> suggestions, patch 1 and 6 are only rebased though.
> The patches are also available via
>
> https://github.com/gerddie/mesa/tree/regrename-v7
>
> The one thing I did not do (or better said, I reverted it) is using
> _mesa_register_file_name in the debug output because the names
> returned are not
> correct for the TGSI file indices I have access to there.
>
> Piglit doesn't show any regressions and the changes are:
>
> - Rebase to 9ee67467
> - Correct documentation of GLSL_TO_TGSI_RENAME_DEBUG in commit
> message.
> - Fix typos, include files, formatting, and some variable names.
> - Add anonymous namespace around classes.
> - Replace debug_log singleton by a function.
> - Cleanup the switch-case scope creation.
> - Track switch variable only for SWITCH statement.
> - Add test case with switch in loop that has a case where the
> register is
> written, then falls through where it is read and correct code
> accordingly.
> Specifically, this showed that you were right that the scope of the
> case that falls through must not be extended.
> - Add test case for more then one break in loop and make sure the
> first break
> is used for life-time tracking.
> - Simplify access flag tracking and merging.
> - Drop special handling of registers that are only read, i.e. treat
> them like
> unused registers since renumber_registers will do this anyway.
> - Simplify the enclosing scope resolution.
> - Handle TEMP[0] just like the others. Somehow I had the idea that
> TEMP[0] is
> special and should not be touched, and the debug output running
> various
> programs and also from piglit shaders doesn't show TEMP[0] as
> used.
> - Optimize renaming evaluation by only copying used registers to the
> reg_access array that is used for the evaluation.
>
> Best,
> Gert
>
> Gert Wollny (6):
> mesa/st: glsl_to_tgsi move some helper classes to extra files
> mesa/st: glsl_to_tgsi: implement new temporary register lifetime
> tracker
> mesa/st: glsl_to_tgsi: add tests for the new temporary lifetime
> tracker
> mesa/st: glsl_to_tgsi: add register rename mapping evaluator
> mesa/st: glsl_to_tgsi: Add test set for evaluation of rename
> mapping
> mesa/st: glsl_to_tgsi: tie in new temporary register merge approach
>
> configure.ac | 1 +
> src/mesa/Makefile.am | 2 +-
> src/mesa/Makefile.sources | 4 +
> src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 344 +----
> src/mesa/state_tracker/st_glsl_to_tgsi_private.cpp | 196 +++
> src/mesa/state_tracker/st_glsl_to_tgsi_private.h | 167 ++
> .../state_tracker/st_glsl_to_tgsi_temprename.cpp | 992
> ++++++++++++
> .../state_tracker/st_glsl_to_tgsi_temprename.h | 67 +
> src/mesa/state_tracker/tests/Makefile.am | 36 +
> .../tests/test_glsl_to_tgsi_lifetime.cpp | 1597
> ++++++++++++++++++++
> 10 files changed, 3073 insertions(+), 333 deletions(-)
> create mode 100644
> src/mesa/state_tracker/st_glsl_to_tgsi_private.cpp
> create mode 100644 src/mesa/state_tracker/st_glsl_to_tgsi_private.h
> create mode 100644
> src/mesa/state_tracker/st_glsl_to_tgsi_temprename.cpp
> create mode 100644
> src/mesa/state_tracker/st_glsl_to_tgsi_temprename.h
> create mode 100644 src/mesa/state_tracker/tests/Makefile.am
> create mode 100644
> src/mesa/state_tracker/tests/test_glsl_to_tgsi_lifetime.cpp
>
More information about the mesa-dev
mailing list