diff options
author | Rob Clark <[email protected]> | 2016-07-19 18:24:57 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2016-07-30 09:23:42 -0400 |
commit | e684c32d2fdda204b79661ecf26881eae133d64a (patch) | |
tree | 762e83dd401b7ec18778b2078e3d473ab42c7d91 /src/gallium/drivers/freedreno/freedreno_draw.c | |
parent | 010e4b2d52d5b5ab1eb866dfa0a2df5b984c343d (diff) |
freedreno: some locking
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/freedreno_draw.c')
-rw-r--r-- | src/gallium/drivers/freedreno/freedreno_draw.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_draw.c b/src/gallium/drivers/freedreno/freedreno_draw.c index e371d2bf7dc..ca42cf7c5d2 100644 --- a/src/gallium/drivers/freedreno/freedreno_draw.c +++ b/src/gallium/drivers/freedreno/freedreno_draw.c @@ -101,6 +101,8 @@ fd_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info) * Figure out the buffers/features we need: */ + pipe_mutex_lock(ctx->screen->lock); + if (fd_depth_enabled(ctx)) { buffers |= FD_BUFFER_DEPTH; resource_written(batch, pfb->zsbuf->texture); @@ -161,6 +163,8 @@ fd_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info) resource_written(batch, batch->query_buf); + pipe_mutex_unlock(ctx->screen->lock); + batch->num_draws++; prims = u_reduced_prims_for_vertices(info->mode, info->count); @@ -249,6 +253,8 @@ fd_clear(struct pipe_context *pctx, unsigned buffers, batch->resolve |= buffers; batch->needs_flush = true; + pipe_mutex_lock(ctx->screen->lock); + if (buffers & PIPE_CLEAR_COLOR) for (i = 0; i < pfb->nr_cbufs; i++) if (buffers & (PIPE_CLEAR_COLOR0 << i)) @@ -261,6 +267,8 @@ fd_clear(struct pipe_context *pctx, unsigned buffers, resource_written(batch, batch->query_buf); + pipe_mutex_unlock(ctx->screen->lock); + DBG("%p: %x %ux%u depth=%f, stencil=%u (%s/%s)", batch, buffers, pfb->width, pfb->height, depth, stencil, util_format_short_name(pipe_surface_format(pfb->cbufs[0])), |