summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristian H. Kristensen <[email protected]>2019-02-01 15:20:05 -0800
committerKristian H. Kristensen <[email protected]>2019-02-11 12:26:21 -0800
commitd2639f2eac204944cfaa67021b8c54ae834fae53 (patch)
treedcc4def491c30c72e6be030cd59e84856c5f239a
parent8cf130369811643b7432ef6c4d8de6e45a4f4ce4 (diff)
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 <[email protected]> Signed-off-by: Kristian H. Kristensen <[email protected]>
-rw-r--r--src/gallium/drivers/freedreno/freedreno_blitter.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_blitter.c b/src/gallium/drivers/freedreno/freedreno_blitter.c
index c8f034759a9..f779f0fefb2 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);
}
/**