diff options
author | Kristian H. Kristensen <[email protected]> | 2019-02-01 15:20:05 -0800 |
---|---|---|
committer | Kristian H. Kristensen <[email protected]> | 2019-02-11 12:26:21 -0800 |
commit | d2639f2eac204944cfaa67021b8c54ae834fae53 (patch) | |
tree | dcc4def491c30c72e6be030cd59e84856c5f239a | |
parent | 8cf130369811643b7432ef6c4d8de6e45a4f4ce4 (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.c | 6 |
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); } /** |