mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
radeonsi: don't return 0 from si_get_max_workgroup_size
the next commit needs this Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32782>
This commit is contained in:
parent
342dcbdc8b
commit
85ce311a36
2 changed files with 6 additions and 8 deletions
|
|
@ -156,6 +156,8 @@ unsigned si_get_max_workgroup_size(const struct si_shader *shader)
|
|||
gl_shader_stage stage = shader->is_gs_copy_shader ?
|
||||
MESA_SHADER_VERTEX : shader->selector->stage;
|
||||
|
||||
assert(shader->wave_size);
|
||||
|
||||
switch (stage) {
|
||||
case MESA_SHADER_VERTEX:
|
||||
case MESA_SHADER_TESS_EVAL:
|
||||
|
|
@ -165,22 +167,22 @@ unsigned si_get_max_workgroup_size(const struct si_shader *shader)
|
|||
|
||||
/* As part of merged shader. */
|
||||
return shader->selector->screen->info.gfx_level >= GFX9 &&
|
||||
(shader->key.ge.as_ls || shader->key.ge.as_es) ? 128 : 0;
|
||||
(shader->key.ge.as_ls || shader->key.ge.as_es) ? 128 : shader->wave_size;
|
||||
|
||||
case MESA_SHADER_TESS_CTRL:
|
||||
/* Return this so that LLVM doesn't remove s_barrier
|
||||
* instructions on chips where we use s_barrier. */
|
||||
return shader->selector->screen->info.gfx_level >= GFX7 ? 128 : 0;
|
||||
return shader->selector->screen->info.gfx_level >= GFX7 ? 128 : shader->wave_size;
|
||||
|
||||
case MESA_SHADER_GEOMETRY:
|
||||
/* GS can always generate up to 256 vertices. */
|
||||
return shader->selector->screen->info.gfx_level >= GFX9 ? 256 : 0;
|
||||
return shader->selector->screen->info.gfx_level >= GFX9 ? 256 : shader->wave_size;
|
||||
|
||||
case MESA_SHADER_COMPUTE:
|
||||
break; /* see below */
|
||||
|
||||
default:
|
||||
return 0;
|
||||
return shader->wave_size;
|
||||
}
|
||||
|
||||
/* Compile a variable block size using the maximum variable size. */
|
||||
|
|
|
|||
|
|
@ -69,10 +69,6 @@ si_fill_aco_shader_info(struct si_shader *shader, struct aco_shader_info *info,
|
|||
|
||||
info->wave_size = shader->wave_size;
|
||||
info->workgroup_size = si_get_max_workgroup_size(shader);
|
||||
/* aco need non-zero value */
|
||||
if (!info->workgroup_size)
|
||||
info->workgroup_size = info->wave_size;
|
||||
|
||||
info->merged_shader_compiled_separately = !shader->is_gs_copy_shader &&
|
||||
si_is_multi_part_shader(shader) && !shader->is_monolithic;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue