diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir.c b/src/gallium/auxiliary/gallivm/lp_bld_nir.c index 7c4658ff2bb..d0437bac32e 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_nir.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_nir.c @@ -77,6 +77,7 @@ lp_build_opt_nir(struct nir_shader *nir) .lower_subgroup_masks = true, .lower_relative_shuffle = true, .lower_inverse_ballot = true, + .lower_rotate_to_shuffle = true, }; NIR_PASS(progress, nir, nir_lower_subgroups, &subgroups_options); } while (progress); diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c index aaf9308dbe7..8b6ab50db00 100644 --- a/src/gallium/drivers/llvmpipe/lp_screen.c +++ b/src/gallium/drivers/llvmpipe/lp_screen.c @@ -391,6 +391,9 @@ llvmpipe_init_screen_caps(struct pipe_screen *screen) caps->max_point_size_aa = LP_MAX_POINT_WIDTH; /* arbitrary */ caps->max_texture_anisotropy = 16.0; /* not actually signficant at this time */ caps->max_texture_lod_bias = 16.0; /* arbitrary */ + + caps->shader_subgroup_supported_stages = BITFIELD_MASK(MESA_SHADER_MESH_STAGES); + caps->shader_subgroup_supported_features = PIPE_SHADER_SUBGROUP_FEATURE_MASK; }