[Mesa-dev] [PATCH 0/3] [RFC] mesa/st: glsl_to_tgsi: improved temp-reg lifetime estimation

Gert Wollny gw.fossdev at gmail.com
Fri Jun 9 23:15:05 UTC 2017


Dear all,

as I wrote before, I was looking into the temporary register renaming.

This series of patches implements a new approach that achieves a tigher
estimation of the life time of the temporaries, and as a result the Piano
and Voloplosion benchmarks implemented in gputest [1] now work. Before
they failed with "r600_pipe_shader_create - translation from TGSI failed!"

Piglit shows 7 fixes and 6 regressions compared to git 8fac894f, but they don't
seem to be related to shaders. I've also tested other programs like the unignie-*
benchmarks and they didn't show regressions.

I think that the patch will need a few more iterations to remove code duplication
and generally adhere to the mesa style, but I think it is atthe point where I could
need a bit of feedback to get it into shape to be acceptable, and I'd also like to
mention that since I'm new to mesa this I have no commit rights.

many thanks,
Gert

[1] http://www.geeks3d.com/gputest/

Gert Wollny (3):
  mesa/st: glsl_to_tgsi move some helper classes to extra files
  mesa/st: glsl_to_tgsi Implement a new lifetime tracker for temporaries
  mesa/st: glsl_to_tgsi: tie in the new register renaming approach

 configure.ac                                       |   1 +
 src/mesa/Makefile.am                               |   4 +-
 src/mesa/Makefile.sources                          |   4 +
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp         | 302 +-------
 src/mesa/state_tracker/st_glsl_to_tgsi_private.cpp | 241 +++++++
 src/mesa/state_tracker/st_glsl_to_tgsi_private.h   | 135 ++++
 .../state_tracker/st_glsl_to_tgsi_temprename.cpp   | 551 ++++++++++++++
 .../state_tracker/st_glsl_to_tgsi_temprename.h     | 114 +++
 src/mesa/state_tracker/tests/Makefile.am           |  40 ++
 src/mesa/state_tracker/tests/st-renumerate-test    | 210 ++++++
 .../tests/test_glsl_to_tgsi_lifetime.cpp           | 789 +++++++++++++++++++++
 11 files changed, 2104 insertions(+), 287 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 100755 src/mesa/state_tracker/tests/st-renumerate-test
 create mode 100644 src/mesa/state_tracker/tests/test_glsl_to_tgsi_lifetime.cpp

-- 
2.13.0



More information about the mesa-dev mailing list