gallium: add SUBGROUP_FEATURE bits for rotate and rotate_clustered

The bit values are taken from Vulkan to make it easy for Zink. Those new
subgroup features will be used by rusticl for cl_khr_subgroup_rotate.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38015>
This commit is contained in:
Karol Herbst 2025-09-04 10:29:20 +02:00 committed by Marge Bot
parent 235e868ef7
commit 2a5227981e

View file

@ -697,8 +697,19 @@ enum pipe_conservative_raster_mode
#define PIPE_SHADER_SUBGROUP_FEATURE_SHUFFLE_RELATIVE (1 << 5)
#define PIPE_SHADER_SUBGROUP_FEATURE_CLUSTERED (1 << 6)
#define PIPE_SHADER_SUBGROUP_FEATURE_QUAD (1 << 7)
/** GL supported subgroup features */
#define PIPE_SHADER_SUBGROUP_NUM_FEATURES 8
/* VK_SUBGROUP_FEATURE_ROTATE_BIT */
#define PIPE_SHADER_SUBGROUP_FEATURE_ROTATE (1 << 9)
/* VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT */
#define PIPE_SHADER_SUBGROUP_FEATURE_ROTATE_CLUSTERED (1 << 10)
/** Vulkan and OpenCL supported subgroup features */
#define PIPE_SHADER_SUBGROUP_FEATURE_MASK \
(BITFIELD_MASK(PIPE_SHADER_SUBGROUP_NUM_FEATURES) | \
PIPE_SHADER_SUBGROUP_FEATURE_ROTATE | \
PIPE_SHADER_SUBGROUP_FEATURE_ROTATE_CLUSTERED)
enum pipe_point_size_lower_mode {
PIPE_POINT_SIZE_LOWER_ALWAYS,
PIPE_POINT_SIZE_LOWER_NEVER,