diff --git a/src/compiler/shader_enums.h b/src/compiler/shader_enums.h index 0d93726d9e6..0ab79323a6b 100644 --- a/src/compiler/shader_enums.h +++ b/src/compiler/shader_enums.h @@ -26,6 +26,8 @@ #ifndef SHADER_ENUMS_H #define SHADER_ENUMS_H +#include "util/macros.h" + #include /* Project-wide (GL and Vulkan) maximum. */ @@ -1215,6 +1217,21 @@ enum cl_sampler_filter_mode { #define MAT_BIT_FRONT_INDEXES (1<shader->info.stage == MESA_SHADER_KERNEL); - b->shader->info.cs.subgroup_size = mode->operands[0]; + b->shader->info.subgroup_size = mode->operands[0]; break; case SpvExecutionModeSubgroupUniformControlFlowKHR: diff --git a/src/intel/compiler/brw_simd_selection.c b/src/intel/compiler/brw_simd_selection.c index 0c9bf1f4fd2..2ab9bfeed89 100644 --- a/src/intel/compiler/brw_simd_selection.c +++ b/src/intel/compiler/brw_simd_selection.c @@ -41,9 +41,10 @@ brw_required_dispatch_width(const struct shader_info *info, required = (unsigned)subgroup_size_type; } - if (gl_shader_stage_is_compute(info->stage) && info->cs.subgroup_size > 0) { - assert(required == 0 || required == info->cs.subgroup_size); - required = info->cs.subgroup_size; + if (gl_shader_stage_is_compute(info->stage) && + info->subgroup_size >= SUBGROUP_SIZE_REQUIRE_8) { + assert(required == 0 || required == info->subgroup_size); + required = info->subgroup_size; } return required;