[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
driver.
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