[Mesa-dev] [PATCH] radv: Don't use FLAT_SHADE for constants.

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Wed May 3 17:52:12 UTC 2017


Setting both offset to 0x20 and flat shade results in passthrough
mode instead of the constant.

Signed-off-by: Bas Nieuwenhuizen <basni at google.com>
Fixes: f205e19e4f8 "radv/ac: eliminate unused vertex shader outputs. (v2)"
---
 src/amd/vulkan/radv_pipeline.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c
index f3cba198e46..2992df6ed43 100644
--- a/src/amd/vulkan/radv_pipeline.c
+++ b/src/amd/vulkan/radv_pipeline.c
@@ -1886,9 +1886,11 @@ static void calculate_pa_cl_vs_out_cntl(struct radv_pipeline *pipeline)
 static uint32_t offset_to_ps_input(uint32_t offset, bool flat_shade)
 {
 	uint32_t ps_input_cntl;
-	if (offset <= AC_EXP_PARAM_OFFSET_31)
+	if (offset <= AC_EXP_PARAM_OFFSET_31) {
 		ps_input_cntl = S_028644_OFFSET(offset);
-	else {
+		if (flat_shade)
+			ps_input_cntl |= S_028644_FLAT_SHADE(1);
+	} else {
 		/* The input is a DEFAULT_VAL constant. */
 		assert(offset >= AC_EXP_PARAM_DEFAULT_VAL_0000 &&
 		       offset <= AC_EXP_PARAM_DEFAULT_VAL_1111);
@@ -1896,8 +1898,6 @@ static uint32_t offset_to_ps_input(uint32_t offset, bool flat_shade)
 		ps_input_cntl = S_028644_OFFSET(0x20) |
 			S_028644_DEFAULT_VAL(offset);
 	}
-	if (flat_shade)
-		ps_input_cntl |= S_028644_FLAT_SHADE(1);
 	return ps_input_cntl;
 }
 
-- 
2.12.2



More information about the mesa-dev mailing list