From a6f351a666dbb0ef2082043c821ba6cf290f5fc9 Mon Sep 17 00:00:00 2001 From: Jose Maria Casanova Crespo Date: Thu, 15 Oct 2020 13:38:11 +0200 Subject: [PATCH] vc4: Enable nir_lower_io for uniforms Altough the driver isn't expected to receive nir_var_uniform types from GLSL this happens currently for one of the internal driver shaders. At vc4_get_yuv_fs at vc4_blit.c there is a "stride" nir_var_uniform variable that needs to be lowered so the shader can be compiled. This regression was affecting several piglit tests under spec/ext_image_dma_buf_import and at least MythTV application. Fixes: 96d99f2eccb ("vc4: Only call nir_lower_io on shader_in/out") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3536 Reviewed-by: Eric Anholt Tested-by: Piotr Oniszczuk Part-of: (cherry picked from commit d91cb31a2aad30c80c88dedc7b75853470266979) --- .pick_status.json | 2 +- src/gallium/drivers/vc4/vc4_program.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 2864be32976..fcd90f87f6b 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -94,7 +94,7 @@ "description": "vc4: Enable nir_lower_io for uniforms", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "96d99f2eccb4bea4b9ede38f9b2e472cdc617e99" }, diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c index d59651b4a31..b75531d6691 100644 --- a/src/gallium/drivers/vc4/vc4_program.c +++ b/src/gallium/drivers/vc4/vc4_program.c @@ -2472,7 +2472,8 @@ vc4_shader_state_create(struct pipe_context *pctx, if (s->info.stage == MESA_SHADER_VERTEX) NIR_PASS_V(s, nir_lower_point_size, 1.0f, 0.0f); - NIR_PASS_V(s, nir_lower_io, nir_var_shader_in | nir_var_shader_out, + NIR_PASS_V(s, nir_lower_io, + nir_var_shader_in | nir_var_shader_out | nir_var_uniform, type_size, (nir_lower_io_options)0); NIR_PASS_V(s, nir_lower_regs_to_ssa);