[Mesa-dev] RFC: Gallium support for ARB_shader_atomic_counters

Ilia Mirkin imirkin at alum.mit.edu
Mon Jun 16 15:43:57 PDT 2014


I've been toying with the idea of adding gallium support for the
atomic counters extension in gallium. Nouveau already largely supports
it, so it's mostly a question of plumbing. (One piece that's missing
in nouveau is _actually_ binding resources, but that can't be too
difficult... I hope.)

It seems like the thing that makes the most sense is to make sure that
the atomic buffer is allocated with PIPE_BIND_SHADER_RESOURCE, and use
->set_shader_resources to bind them. Then the TGSI opcodes generated
would refer to TGSI_FILE_RESOURCE objects linked to those atomic
buffers. I would reuse the existing ATOM* opcodes + LOAD/STORE (didn't
check if extra ones are needed, but I'd assume not).

Am I missing some large piece of this? Is there an easier/better way
of doing this? It'll obviously require a bunch of work in
st_glsl_to_tgsi to add support for tracking resources/etc.


More information about the mesa-dev mailing list