Turns out Matt already did a bunch of this work last year, but since I only found out about that after I wrote my patches, I decided to keep mine in place (I like the "vote" naming better TBH). This passes the very simple piglit tests I just sent out to the list.
Ilia Mirkin (5): mesa: hook up core bits of GL_ARB_shader_group_vote gallium: add VOTE_* opcodes to implement GL_ARB_shader_group_vote gallium: add PIPE_CAP_TGSI_VOTE for when the VOTE ops are allowed st/mesa: expose GL_ARB_shader_group_vote when supported by backend nvc0: add support for VOTE tgsi opcodes src/compiler/glsl/builtin_functions.cpp | 22 ++++++++++++++++++ src/compiler/glsl/glcpp/glcpp-parse.y | 3 +++ src/compiler/glsl/glsl_parser_extras.cpp | 1 + src/compiler/glsl/glsl_parser_extras.h | 2 ++ src/compiler/glsl/ir.cpp | 6 +++++ src/compiler/glsl/ir.h | 9 +++++++- src/compiler/glsl/ir_validate.cpp | 8 +++++++ src/gallium/auxiliary/tgsi/tgsi_info.c | 3 +++ src/gallium/docs/source/screen.rst | 1 + src/gallium/docs/source/tgsi.rst | 17 ++++++++++++++ src/gallium/drivers/freedreno/freedreno_screen.c | 1 + src/gallium/drivers/i915/i915_screen.c | 1 + src/gallium/drivers/ilo/ilo_screen.c | 1 + src/gallium/drivers/llvmpipe/lp_screen.c | 1 + .../drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp | 23 ++++++++++++++---- .../drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp | 27 +++++++++++++--------- .../drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp | 23 ++++++++++++++---- .../drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 21 +++++++++++++++++ src/gallium/drivers/nouveau/nv30/nv30_screen.c | 1 + src/gallium/drivers/nouveau/nv50/nv50_screen.c | 1 + src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 4 ++-- src/gallium/drivers/r300/r300_screen.c | 1 + src/gallium/drivers/r600/r600_pipe.c | 1 + src/gallium/drivers/radeonsi/si_pipe.c | 1 + src/gallium/drivers/softpipe/sp_screen.c | 1 + src/gallium/drivers/svga/svga_screen.c | 1 + src/gallium/drivers/swr/swr_screen.cpp | 1 + src/gallium/drivers/vc4/vc4_screen.c | 1 + src/gallium/drivers/virgl/virgl_screen.c | 1 + src/gallium/include/pipe/p_defines.h | 1 + src/gallium/include/pipe/p_shader_tokens.h | 7 +++++- .../dri/i965/brw_fs_channel_expressions.cpp | 5 ++++ src/mesa/main/extensions_table.h | 1 + src/mesa/main/mtypes.h | 1 + src/mesa/program/ir_to_mesa.cpp | 3 +++ src/mesa/state_tracker/st_extensions.c | 1 + src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 10 ++++++++ 37 files changed, 190 insertions(+), 23 deletions(-) -- 2.7.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev