Skip to content

gallivm,lavapipe: add subgroup shuffle support

Autumn on Tape requested to merge autumnontape/mesa:lavapipe-shuffle into main

This adds support for subgroup shuffle operations to Lavapipe. It will use a shufflevector instruction if possible, falling back to intrinsics or to a loop if none are applicable.

Note that the dEQP-VK.subgroups.shuffle.* tests in the Vulkan CTS don't exercise the index_is_constant_data path in emit_shuffle, which I would expect to be a common case in real applications. I did run a slightly modified version of them to test that path.

Edited by Autumn on Tape

Merge request reports