diff options
author | Qiang Yu <yuq825@gmail.com> | 2020-02-07 19:43:10 +0800 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-02-17 02:54:15 +0000 |
commit | 131c50569066152a8e90b948b0873b990d748e98 (patch) | |
tree | b1d3b735d2173d972e3faea7141b319eef797ddb /src/gallium/drivers/lima/lima_draw.c | |
parent | d6ad8e590f27ce0413389f6274fa05106d45dba1 (diff) | |
download | mesa-131c50569066152a8e90b948b0873b990d748e98.tar.gz |
lima: optinal flush submit in lima_clear
flush current submit only when there is any draw pending instead of
flush all submits.
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3755>
Diffstat (limited to 'src/gallium/drivers/lima/lima_draw.c')
-rw-r--r-- | src/gallium/drivers/lima/lima_draw.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/drivers/lima/lima_draw.c b/src/gallium/drivers/lima/lima_draw.c index 0b1e1f763c8..3b53bdac1d3 100644 --- a/src/gallium/drivers/lima/lima_draw.c +++ b/src/gallium/drivers/lima/lima_draw.c @@ -102,8 +102,14 @@ lima_clear(struct pipe_context *pctx, unsigned buffers, const union pipe_color_union *color, double depth, unsigned stencil) { struct lima_context *ctx = lima_context(pctx); + struct lima_submit *submit = lima_submit_get(ctx); - lima_flush(ctx); + /* flush if this submit already contains any draw, otherwise multi clear can be + * combined into a single submit */ + if (lima_submit_has_draw_pending(submit)) { + lima_do_submit(submit); + submit = lima_submit_get(ctx); + } lima_update_submit_wb(ctx, buffers); @@ -113,7 +119,6 @@ lima_clear(struct pipe_context *pctx, unsigned buffers, surf->reload = false; } - struct lima_submit *submit = lima_submit_get(ctx); struct lima_submit_clear *clear = &submit->clear; clear->buffers = buffers; |