From e1ee201722a33d1294930d6ec493dfc9e4b9283c Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Thu, 7 Jul 2022 13:09:22 -0500 Subject: [PATCH] shader_info: Move subgroup_size out of cs and make it an enum Reviewed-by: Caio Oliveira Part-of: --- src/compiler/shader_enums.h | 17 +++++++++++++++++ src/compiler/shader_info.h | 7 ++----- src/compiler/spirv/spirv_to_nir.c | 2 +- src/intel/compiler/brw_simd_selection.c | 7 ++++--- 4 files changed, 24 insertions(+), 9 deletions(-) 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;