lima: fix tile buffer reloading

Buffer needs to be reloaded every time unless explicit clear() was
called.

Fixes rendering issues with wayland compositors.

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
This commit is contained in:
Vasily Khoruzhick 2019-05-07 19:03:34 -07:00
parent f7d53fffa2
commit e44a4bae52
2 changed files with 4 additions and 2 deletions

View file

@ -1675,9 +1675,9 @@ _lima_flush(struct lima_context *ctx, bool end_of_frame)
ctx->plb_index = (ctx->plb_index + 1) % lima_ctx_num_plb;
if (ctx->framebuffer.base.nr_cbufs) {
/* this surface may need reload when next draw if not end of frame */
/* Set reload flag for next draw. It'll be unset if buffer is cleared */
struct lima_surface *surf = lima_surface(ctx->framebuffer.base.cbufs[0]);
surf->reload = !end_of_frame;
surf->reload = true;
}
}

View file

@ -382,6 +382,8 @@ lima_surface_create(struct pipe_context *pctx,
surf->tiled_w = align(psurf->width, 16) >> 4;
surf->tiled_h = align(psurf->height, 16) >> 4;
surf->reload = true;
struct lima_context *ctx = lima_context(pctx);
if (ctx->plb_pp_stream) {
struct lima_ctx_plb_pp_stream_key key = {