[Mesa-dev] [PATCH 00/11] ARB_shader_atomic_counter_ops for NIR and i965

Ian Romanick idr at freedesktop.org
Wed Jul 6 00:46:08 UTC 2016

The first 7 patches in this series put GLSL-to-NIR on a small diet.  I
looked at the giant sequense of 'if (strcmp(...) == 0) { ... } else if
(strcmp(...) == 0) { ...' and said, "Oh hell no."  I don't think we care
much about the performance of this code, so I opted to tune for size.
Using an in-code radix trie gets it about as small as I think it can
get.  The result is -784 bytes in a single function.  All 41 strings
just disappear.

It looks like src/mesa/state_tracker/st_glsl_to_tgsi.cpp could get
similar treatment, and the savings there should be even larger.  My
recommendation would be to copy src/compiler/glsl/nir_intrinsic_map.py
into src/mesa/state_tracker and change it to suit the needs of that
code.  The hard part is already done. :)

The rest of the series adds the new intrinsics to NIR and to the i965

What we don't have is a good set of piglit tests for the new intrinsics.
We also might not have tests for the existing flavors of the new
intrinsics on, for example, SSBOs.  There is a test for
atomicCounterAddARB.  I think it's going to be fairly difficult to come
up with good tests for the other functions.  I'll have to think about it
some more.

More information about the mesa-dev mailing list