Nice optimizations, Dylan. I'm quite impressed/surprised on the gain through avoiding the inheritance/include mechanisms in the mako templates.
This series is: Reviewed-by: Andres Gomez <[email protected]> On Tue, 2016-06-07 at 14:15 -0700, Dylan Baker wrote: > This recently introduced generator is rather slow, even on a > relatively > fast processor. On my system it takes 4 minutes to run with a hot > mako > cache, and nearly 6 minutes with a cold cache. This is in comparison > to > this series which runs in about 1 minute on my system, with only > about 1 > second to fill the cache. > > This series first goes after some low hanging optimizations in the > generator itself, building lists out of generators when there isn't > any > need to, using interable chaining instead of building lists, and > converting some functions that build lists into generators. While > that > work (the first 3 patches) manages to get some improvement, it isn't > enough. > > There is a patch for shader_runner in here that the last two patches > need. It's pretty trivial and I've tested that it doesn't break > anything > else. > > The final two patches give all the performance. By reworking the mako > I > was about to cut 3/4 of the run time. There are some things about > these > patches that could be better, they're pretty naive reimplementations > of > the original templates, and if we wanted we could probably further > improve the runtime of the generator. But ~260 tests a second seems > pretty good to me for performance. > > Dylan Baker (6): > generators/gen_vs_in_fp64: don't list-ize generators for no reason. > generators/gen_vs_in_fp64: don't store the filenames print them > immediately > generators/gen_vs_in_fp64: use more generators/iterators save more > runtime > shader_runner: Allow whitespace before [require] declarations > generators/gen_vs_in_fp64: Rewrite the columns test generator > generators/gen_vs_in_fp64: reimplement require_execution template > > generated_tests/CMakeLists.txt | 7 +- > generated_tests/gen_vs_in_fp64.py | 90 +++++---- > --- > generated_tests/templates/gen_vs_in_fp64/base.mako | 27 ---- > .../gen_vs_in_fp64/columns.shader_test.mako | 137 > ++++++++++++++++++ > .../columns_execution.vert.shader_test.mako | 41 ------ > .../gen_vs_in_fp64/columns_shader.vert.mako | 17 --- > .../gen_vs_in_fp64/execution.vert.shader_test.mako | 32 ---- > .../templates/gen_vs_in_fp64/execution_base.mako | 85 ----------- > .../gen_vs_in_fp64/regular.shader_test.mako | 161 > +++++++++++++++++++++ > .../regular_execution.vert.shader_test.mako | 67 --------- > .../gen_vs_in_fp64/regular_shader.vert.mako | 19 --- > .../templates/gen_vs_in_fp64/shader.vert.mako | 16 -- > .../templates/gen_vs_in_fp64/shader_base.mako | 12 -- > tests/shaders/shader_runner.c | 5 + > 14 files changed, 339 insertions(+), 377 deletions(-) > delete mode 100644 > generated_tests/templates/gen_vs_in_fp64/base.mako > create mode 100644 > generated_tests/templates/gen_vs_in_fp64/columns.shader_test.mako > delete mode 100644 > generated_tests/templates/gen_vs_in_fp64/columns_execution.vert.shade > r_test.mako > delete mode 100644 > generated_tests/templates/gen_vs_in_fp64/columns_shader.vert.mako > delete mode 100644 > generated_tests/templates/gen_vs_in_fp64/execution.vert.shader_test.m > ako > delete mode 100644 > generated_tests/templates/gen_vs_in_fp64/execution_base.mako > create mode 100644 > generated_tests/templates/gen_vs_in_fp64/regular.shader_test.mako > delete mode 100644 > generated_tests/templates/gen_vs_in_fp64/regular_execution.vert.shade > r_test.mako > delete mode 100644 > generated_tests/templates/gen_vs_in_fp64/regular_shader.vert.mako > delete mode 100644 > generated_tests/templates/gen_vs_in_fp64/shader.vert.mako > delete mode 100644 > generated_tests/templates/gen_vs_in_fp64/shader_base.mako > -- Br, Andres _______________________________________________ Piglit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/piglit
