diff options
authorJose Maria Casanova Crespo <>2020-10-15 13:38:11 +0200
committerJose Maria Casanova Crespo <>2020-10-15 22:05:58 +0200
commitd91cb31a2aad30c80c88dedc7b75853470266979 (patch)
parent3e877ca27dfb2f0e1acff6e86fa886e737aebdd4 (diff)
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: Reviewed-by: Eric Anholt <> Tested-by: Piotr Oniszczuk <> Part-of: <>
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c
index 9cdcd6b0957..b99aaec9b1a 100644
--- a/src/gallium/drivers/vc4/vc4_program.c
+++ b/src/gallium/drivers/vc4/vc4_program.c
@@ -2474,7 +2474,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);