[Mesa-dev] [PATCH] ac/shader: scan force_persample
Samuel Pitoiset
samuel.pitoiset at gmail.com
Mon Feb 12 14:57:17 UTC 2018
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
src/amd/common/ac_nir_to_llvm.c | 5 ++---
src/amd/common/ac_shader_info.c | 15 +++++++++++++++
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index bf5b0bc1e1..86795875a1 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -5413,10 +5413,9 @@ handle_fs_input_decl(struct radv_shader_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;
diff --git a/src/amd/common/ac_shader_info.c b/src/amd/common/ac_shader_info.c
index b211da60b3..3b0887995d 100644
--- a/src/amd/common/ac_shader_info.c
+++ b/src/amd/common/ac_shader_info.c
@@ -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;
}
--
2.16.1
More information about the mesa-dev
mailing list