radv: do not add extra SGPR when push constants are not used

This is not because the vertex stage needs some push constants
that other stages need them too. This should reduce the number
of loaded SGPRs in some situations.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
Samuel Pitoiset 2017-12-18 19:38:58 +01:00
parent 39097282f7
commit 0c4a30eb51

View file

@ -149,7 +149,8 @@ ac_nir_shader_info_pass(struct nir_shader *nir,
struct nir_function *func = (struct nir_function *)exec_list_get_head(&nir->functions);
info->needs_push_constants = false;
if (options->layout->push_constant_size ||
if ((options->layout->push_constant_size &&
options->layout->push_constant_stages & (1 << nir->info.stage)) ||
options->layout->dynamic_offset_count)
info->needs_push_constants = true;