From: Chris Lord Date: Fri, 28 Feb 2020 15:18:14 +0000 (+0000) Subject: vc4: fix vc4_yuv_blit overwriting fragment constant buffer slot 0 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=291f40a4991a7fe6d6091051421290c585bb63a8;p=mesa.git vc4: fix vc4_yuv_blit overwriting fragment constant buffer slot 0 vc4_yuv_blit calls util_blitter_restore_constant_buffer_state without first calling util_blitter_save_fragment_constant_buffer_slot. This causes subsequent crashes in vc4_write_uniforms when using fragment shaders that reference YUV textures. Reviewed-by: Iago Toral Quiroga Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2581 Tested-by: Marge Bot Part-of: --- diff --git a/src/gallium/drivers/vc4/vc4_blit.c b/src/gallium/drivers/vc4/vc4_blit.c index 93b1478ddd1..4e4c4898ea8 100644 --- a/src/gallium/drivers/vc4/vc4_blit.c +++ b/src/gallium/drivers/vc4/vc4_blit.c @@ -165,6 +165,8 @@ vc4_tile_blit(struct pipe_context *pctx, const struct pipe_blit_info *info) void vc4_blitter_save(struct vc4_context *vc4) { + util_blitter_save_fragment_constant_buffer_slot(vc4->blitter, + vc4->constbuf[PIPE_SHADER_FRAGMENT].cb); util_blitter_save_vertex_buffer_slot(vc4->blitter, vc4->vertexbuf.vb); util_blitter_save_vertex_elements(vc4->blitter, vc4->vtx); util_blitter_save_vertex_shader(vc4->blitter, vc4->prog.bind_vs);