Whoops, wrong address... let's try that again. ---------- Forwarded message ---------- From: Connor Abbott <cwabbo...@gmail.com> Date: Mon, Jun 5, 2017 at 12:22 PM Subject: [PATCH 0/4] Core NIR support for ARB_shader_group_vote and ARB_shader_ballot To: mesa-de...@lists.freedesktop.org Cc: Connor Abbott <cwabbo...@gmail.com>
This series adds the core NIR bits required to support ARB_shader_group_vote and ARB_shader_ballot, two post-GL4.5 extensions. What's interesting about them is that they add new instructions with constraints that we've never had to deal with before. They can exist anywhere in the program, but they do cross-thread communication among the active threads, so each thread's result depends on which other threads are active. This kind of "breaks SSA" in a similar, but not exactly the same, way as reading and writing to memory does. I've modeled this with two new attributes explained in the first patch. We definitely could do more analysis to allow better optimizations for these instructions, but I've left that for a later series. I'm mostly sending this out now to get feedback to make sure that these attributes are the approach we want to take. Connor Abbott (4): nir: introduce new convergent and cross-thread attributes nir/gcm: use the new cross-thread attribute nir: take cross-thread operations into account into a few places nir: add ARB_shader_ballot and ARB_shader_group_vote instructions src/compiler/nir/nir.h | 88 +++++++++++++++++++++++++++++- src/compiler/nir/nir_instr_set.c | 12 ++++ src/compiler/nir/nir_intrinsics.h | 14 +++++ src/compiler/nir/nir_opcodes.py | 50 ++++++++++++----- src/compiler/nir/nir_opcodes_c.py | 2 + src/compiler/nir/nir_opt_gcm.c | 72 ++++++++---------------- src/compiler/nir/nir_opt_peephole_select.c | 11 ++++ 7 files changed, 186 insertions(+), 63 deletions(-) -- 2.9.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev