From 4423552ff04647aae75dc2cc0dc0ce580b80b3a3 Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Mon, 10 Jun 2019 21:59:12 +0200 Subject: [PATCH] nir/lower_viewport: Check variable mode first The location is unused for shader_temp and function_temp variables, and due to the way we nir_lower_io_to_temproraries demotes shader_out variables to shader_temp variables, it happened to equal VARYING_SLOT_POS for the gl_Position temporary, which made this pass fail with the offline compiler due to this coming before vars_to_ssa. Reviewed-by: Qiang Yu --- src/compiler/nir/nir_lower_viewport_transform.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/nir/nir_lower_viewport_transform.c b/src/compiler/nir/nir_lower_viewport_transform.c index 94b54524ab7..4bbc88d75f5 100644 --- a/src/compiler/nir/nir_lower_viewport_transform.c +++ b/src/compiler/nir/nir_lower_viewport_transform.c @@ -56,7 +56,8 @@ nir_lower_viewport_transform(nir_shader *shader) continue; nir_variable *var = nir_intrinsic_get_var(intr, 0); - if (var->data.location != VARYING_SLOT_POS) + if (var->data.mode != nir_var_shader_out || + var->data.location != VARYING_SLOT_POS) continue; nir_builder b; -- 2.30.2