summaryrefslogtreecommitdiffstats
path: root/src/amd/common/ac_shader_info.c
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2018-01-09 18:09:43 +0100
committerSamuel Pitoiset <[email protected]>2018-01-10 12:31:54 +0100
commitd43f50c00b8172abd0c9e934c3e193bdc85b5089 (patch)
tree450fbbfbe553ea95826d5fc1a24d342b5ab702f2 /src/amd/common/ac_shader_info.c
parent4e701cf75c89dbe8dd731698f2652beb7863e69b (diff)
amd/common: do not rely on the pipeline for the push constants logic
It makes more sense to rely on nir_intrinsic_load_push_constant instead of the pipeline layout. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src/amd/common/ac_shader_info.c')
-rw-r--r--src/amd/common/ac_shader_info.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/amd/common/ac_shader_info.c b/src/amd/common/ac_shader_info.c
index 27896a26bb4..443980c7d12 100644
--- a/src/amd/common/ac_shader_info.c
+++ b/src/amd/common/ac_shader_info.c
@@ -76,6 +76,9 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, struct ac_shader_info *info)
case nir_intrinsic_load_primitive_id:
info->uses_prim_id = true;
break;
+ case nir_intrinsic_load_push_constant:
+ info->loads_push_constants = true;
+ break;
case nir_intrinsic_vulkan_resource_index:
info->desc_set_used_mask |= (1 << nir_intrinsic_desc_set(instr));
break;
@@ -154,11 +157,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 &&
- options->layout->push_constant_stages & (1 << nir->info.stage)) ||
- options->layout->dynamic_offset_count)
- info->needs_push_constants = true;
+ if (options->layout->dynamic_offset_count)
+ info->loads_push_constants = true;
nir_foreach_variable(variable, &nir->inputs)
gather_info_input_decl(nir, options, variable, info);