[Mesa-dev] i965: Broadwell using brw_eu_emit.c, part 2

Kenneth Graunke kenneth at whitecape.org
Mon Aug 11 22:18:25 PDT 2014


Hello,

This series finishes getting Broadwell to use brw_eu_emit.c, and finally
kills off gen8_*_generator.* and gen8_instruction.*.  The diffstat is
quite encouraging:

   16 files changed, 147 insertions(+), 4152 deletions(-)

While doing this work, I've been diffing the assembly generated via both
methods across an entire Piglit run.  Because of this, I was able to find
a bunch of bugs in both generators, which was really useful.  I've fixed
those before unifying the two generators, and Cc'd stable.

As is, this series doesn't get the two generating identical assembly.
There are a bunch of small differences that shouldn't matter, and some
compaction-related optimizations Matt did in the brw_eu_emit.c code that
I never did in the Gen8 code.  But, we want those - if I wanted to have
zero differences, I'd disable them on gen >= 8, throw the switch, and then
immediately revert those changes.  But it's pretty close.

This series is available as the 'kill-generators' branch of
git://people.freedesktop.org/~kwg/mesa/

The 'kill-generators-zerodiff' branch is also available, and has
zero differences in the generated assembly.  I'm not proposing to upstream
those, but people can at least see the remaining differences.

Patch 11 also improves performance of Trine 2 on Haswell by 45%, so...
that's always nice, right? :)

--Ken



More information about the mesa-dev mailing list