From 6e4d0a48e3dad0dbf0515b5391b8d0d52795e0fc Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 9 Sep 2020 14:03:43 -0700 Subject: [PATCH] freedreno: Clear gs/tcs/tes state for clear blits Otherwise we could emit a clear blit that is trying to use some random GS stage, which doesn't go well. Signed-off-by: Rob Clark Part-of: --- src/gallium/drivers/freedreno/freedreno_blitter.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gallium/drivers/freedreno/freedreno_blitter.c b/src/gallium/drivers/freedreno/freedreno_blitter.c index d45ae670c01..59e35468336 100644 --- a/src/gallium/drivers/freedreno/freedreno_blitter.c +++ b/src/gallium/drivers/freedreno/freedreno_blitter.c @@ -225,6 +225,13 @@ fd_blitter_clear(struct pipe_context *pctx, unsigned buffers, pctx->bind_vs_state(pctx, ctx->solid_prog.vs); pctx->bind_fs_state(pctx, ctx->solid_prog.fs); + /* Clear geom/tess shaders, lest the draw emit code think we are + * trying to use use them: + */ + pctx->bind_gs_state(pctx, NULL); + pctx->bind_tcs_state(pctx, NULL); + pctx->bind_tes_state(pctx, NULL); + struct pipe_draw_info info = { .mode = PIPE_PRIM_MAX, /* maps to DI_PT_RECTLIST */ .count = 2,