ac/shader: scan force_persample

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-12 15:57:17 +01:00
parent b9d2ff05a6
commit 07e4268f36
2 changed files with 17 additions and 3 deletions

View File

@ -5499,10 +5499,9 @@ handle_fs_input_decl(struct nir_to_llvm_context *ctx,
if (glsl_get_base_type(glsl_without_array(variable->type)) == GLSL_TYPE_FLOAT) {
unsigned interp_type;
if (variable->data.sample) {
if (variable->data.sample)
interp_type = INTERP_SAMPLE;
ctx->shader_info->info.ps.force_persample = true;
} else if (variable->data.centroid)
else if (variable->data.centroid)
interp_type = INTERP_CENTROID;
else
interp_type = INTERP_CENTER;

View File

@ -179,6 +179,18 @@ gather_info_block(const nir_shader *nir, const nir_block *block,
}
}
static void
gather_info_input_decl_ps(const nir_shader *nir, const nir_variable *var,
struct ac_shader_info *info)
{
const struct glsl_type *type = glsl_without_array(var->type);
if (glsl_get_base_type(type) == GLSL_TYPE_FLOAT) {
if (var->data.sample)
info->ps.force_persample = true;
}
}
static void
gather_info_input_decl(const nir_shader *nir, const nir_variable *var,
struct ac_shader_info *info)
@ -187,6 +199,9 @@ gather_info_input_decl(const nir_shader *nir, const nir_variable *var,
case MESA_SHADER_VERTEX:
info->vs.has_vertex_buffers = true;
break;
case MESA_SHADER_FRAGMENT:
gather_info_input_decl_ps(nir, var, info);
break;
default:
break;
}