From 4b4bb46af41c5e6c773ad3f9c0d34c7272e0149f Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Mon, 18 Apr 2022 13:53:21 +1000 Subject: [PATCH] nir: fix setting varying from uniform as flat Here we just make sure we match the interpolation type on both sides of the shader interface. Drivers like d3d12 are expecting this. Fixes: 9401990e6f7a ("nir/linker: set varying from uniform as flat") Reviewed-by: Qiang Yu Part-of: --- src/compiler/nir/nir_linking_helpers.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/compiler/nir/nir_linking_helpers.c b/src/compiler/nir/nir_linking_helpers.c index 6a574ec29be..187098cafe9 100644 --- a/src/compiler/nir/nir_linking_helpers.c +++ b/src/compiler/nir/nir_linking_helpers.c @@ -1391,8 +1391,10 @@ nir_link_opt_varyings(nir_shader *producer, nir_shader *consumer) /* The varying is loaded from same uniform, so no need to do any * interpolation. Mark it as flat explicitly. */ - if (in_var && in_var->data.interpolation <= INTERP_MODE_NOPERSPECTIVE) + if (in_var && in_var->data.interpolation <= INTERP_MODE_NOPERSPECTIVE) { in_var->data.interpolation = INTERP_MODE_FLAT; + out_var->data.interpolation = INTERP_MODE_FLAT; + } } }