diff --git a/docs/features.txt b/docs/features.txt index e9a90c4a015..5ef4ed5e7a9 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -899,7 +899,7 @@ Rusticl extensions: cl_khr_subgroup_named_barrier not started cl_khr_subgroup_non_uniform_arithmetic DONE (asahi, llvmpipe, radeonsi, zink) cl_khr_subgroup_non_uniform_vote DONE (asahi, iris, llvmpipe, radeonsi, zink) - cl_khr_subgroup_rotate DONE (asahi, llvmpipe, radeonsi, zink) + cl_khr_subgroup_rotate DONE (asahi, iris, llvmpipe, radeonsi, zink) cl_khr_subgroup_shuffle DONE (asahi, iris, llvmpipe, radeonsi, zink) cl_khr_subgroup_shuffle_relative DONE (asahi, iris, llvmpipe, radeonsi, zink) cl_khr_subgroups in progress diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index 35777c6da99..b6737700e80 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -1 +1,2 @@ cl_khr_subgroup_rotate on radeonsi +cl_khr_subgroup_rotate on iris diff --git a/src/gallium/drivers/iris/iris_screen.c b/src/gallium/drivers/iris/iris_screen.c index a2624e914f5..6b62f7a43a9 100644 --- a/src/gallium/drivers/iris/iris_screen.c +++ b/src/gallium/drivers/iris/iris_screen.c @@ -494,10 +494,12 @@ iris_init_screen_caps(struct iris_screen *screen) caps->shader_subgroup_size = 32; caps->shader_subgroup_supported_stages = BITFIELD_MASK(MESA_SHADER_STAGES); caps->shader_subgroup_supported_features = - devinfo->has_64bit_float ? BITFIELD_MASK(PIPE_SHADER_SUBGROUP_NUM_FEATURES) + devinfo->has_64bit_float ? PIPE_SHADER_SUBGROUP_FEATURE_MASK : (PIPE_SHADER_SUBGROUP_FEATURE_BASIC | PIPE_SHADER_SUBGROUP_FEATURE_VOTE | PIPE_SHADER_SUBGROUP_FEATURE_BALLOT | + PIPE_SHADER_SUBGROUP_FEATURE_ROTATE | + PIPE_SHADER_SUBGROUP_FEATURE_ROTATE_CLUSTERED | PIPE_SHADER_SUBGROUP_FEATURE_SHUFFLE | PIPE_SHADER_SUBGROUP_FEATURE_SHUFFLE_RELATIVE | PIPE_SHADER_SUBGROUP_FEATURE_QUAD);