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@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
Samuel Pitoiset 2018-02-14 12:03:55 +01:00
parent a34715ad9c
commit 61a4fc3ecc
1 changed files with 11 additions and 1 deletions

View File

@ -179,6 +179,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);