intel/fs: fix subgroup invocation read bounds checking
nir->info.subgroup_size can be set to an enum :
SUBGROUP_SIZE_VARYING = 0
SUBGROUP_SIZE_UNIFORM = 1
SUBGROUP_SIZE_API_CONSTANT = 2
SUBGROUP_SIZE_FULL_SUBGROUPS = 3
So compute the API subgroup size value and compare it to the dispatch
size to determine whether we need some bound checking.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 9ac192d79d
("intel/fs: bound subgroup invocation read to dispatch size")
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21856>
This commit is contained in:

committed by
Marge Bot

parent
f6a36190a1
commit
56474fae93
@@ -1689,6 +1689,13 @@ get_subgroup_size(const struct shader_info *info, unsigned max_subgroup_size)
|
||||
unreachable("Invalid subgroup size type");
|
||||
}
|
||||
|
||||
unsigned
|
||||
brw_nir_api_subgroup_size(const nir_shader *nir,
|
||||
unsigned hw_subgroup_size)
|
||||
{
|
||||
return get_subgroup_size(&nir->info, hw_subgroup_size);
|
||||
}
|
||||
|
||||
void
|
||||
brw_nir_apply_key(nir_shader *nir,
|
||||
const struct brw_compiler *compiler,
|
||||
|
Reference in New Issue
Block a user