Mesa (master): ac/shader: be a little smarter when scanning vertex buffers

Samuel Pitoiset hakzsam at kemper.freedesktop.org
Thu Feb 15 13:54:02 UTC 2018


Module: Mesa
Branch: master
Commit: 61a4fc3ecc3d7740d2b9122c502144e69fe3060c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=61a4fc3ecc3d7740d2b9122c502144e69fe3060c

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Wed Feb 14 12:03:55 2018 +0100

ac/shader: be a little smarter when scanning vertex buffers

Although meta shaders don't use any vertex buffers, there is no
behaviour change but I think it's better to do this. Though,
this saves two user SGPRs for push constants inlining or
something else.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

---

 src/amd/common/ac_shader_info.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/amd/common/ac_shader_info.c b/src/amd/common/ac_shader_info.c
index 3b0887995d..f6cdd34703 100644
--- a/src/amd/common/ac_shader_info.c
+++ b/src/amd/common/ac_shader_info.c
@@ -180,6 +180,16 @@ gather_info_block(const nir_shader *nir, const nir_block *block,
 }
 
 static void
+gather_info_input_decl_vs(const nir_shader *nir, const nir_variable *var,
+			  struct ac_shader_info *info)
+{
+	int idx = var->data.location;
+
+	if (idx >= VERT_ATTRIB_GENERIC0 && idx <= VERT_ATTRIB_GENERIC15)
+		info->vs.has_vertex_buffers = true;
+}
+
+static void
 gather_info_input_decl_ps(const nir_shader *nir, const nir_variable *var,
 			  struct ac_shader_info *info)
 {
@@ -197,7 +207,7 @@ gather_info_input_decl(const nir_shader *nir, const nir_variable *var,
 {
 	switch (nir->info.stage) {
 	case MESA_SHADER_VERTEX:
-		info->vs.has_vertex_buffers = true;
+		gather_info_input_decl_vs(nir, var, info);
 		break;
 	case MESA_SHADER_FRAGMENT:
 		gather_info_input_decl_ps(nir, var, info);




More information about the mesa-commit mailing list