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.pitoi...@gmail.com>
---
 src/amd/common/ac_shader_info.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/amd/common/ac_shader_info.c b/src/amd/common/ac_shader_info.c
index 6aadb5032e..ab5388fb53 100644
--- a/src/amd/common/ac_shader_info.c
+++ b/src/amd/common/ac_shader_info.c
@@ -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;
 
-- 
2.15.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to