Mesa (master): ac/shader: scan force_persample

Samuel Pitoiset hakzsam at kemper.freedesktop.org
Wed Feb 14 10:53:44 UTC 2018


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

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Mon Feb 12 15:57:17 2018 +0100

ac/shader: scan force_persample

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

---

 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 236320bd78..b33e0a984f 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -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;
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
@@ -180,6 +180,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;
 	}




More information about the mesa-commit mailing list