From d2639f2eac204944cfaa67021b8c54ae834fae53 Mon Sep 17 00:00:00 2001 From: "Kristian H. Kristensen" Date: Fri, 1 Feb 2019 15:20:05 -0800 Subject: [PATCH] freedreno: Don't tell the blitter what it can't do Call ctx->blit() and let it reject blits it can't do instead of giving up on stencil blits and blits u_blitter can't do. Reviewed-by: Rob Clark Signed-off-by: Kristian H. Kristensen --- src/gallium/drivers/freedreno/freedreno_blitter.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/freedreno/freedreno_blitter.c b/src/gallium/drivers/freedreno/freedreno_blitter.c index c8f0347..f779f0f 100644 --- a/src/gallium/drivers/freedreno/freedreno_blitter.c +++ b/src/gallium/drivers/freedreno/freedreno_blitter.c @@ -258,6 +258,9 @@ fd_blit(struct pipe_context *pctx, const struct pipe_blit_info *blit_info) if (info.render_condition_enable && !fd_render_condition_check(pctx)) return; + if (ctx->blit && ctx->blit(ctx, &info)) + return; + if (info.mask & PIPE_MASK_S) { DBG("cannot blit stencil, skipping"); info.mask &= ~PIPE_MASK_S; @@ -270,8 +273,7 @@ fd_blit(struct pipe_context *pctx, const struct pipe_blit_info *blit_info) return; } - if (!(ctx->blit && ctx->blit(ctx, &info))) - fd_blitter_blit(ctx, &info); + fd_blitter_blit(ctx, &info); } /** -- 2.7.4