[Mesa-stable] [Mesa-dev] [PATCH 3/4] i965/bufmgr: Add a set_tiling helper

Chris Wilson chris at chris-wilson.co.uk
Fri Jan 12 09:28:00 UTC 2018


Quoting Jason Ekstrand (2018-01-12 01:40:52)
> This helper should be used carefully as setting tiling is a racy
> operation since it potentially interacts with other processes.  Still,
> it is a useful thing to be able to do.
> 
> Cc: mesa-stable at lists.freedesktop.org
> ---
>  src/mesa/drivers/dri/i965/brw_bufmgr.c | 27 +++++++++++++++++++++++++++
>  src/mesa/drivers/dri/i965/brw_bufmgr.h | 10 ++++++++++
>  2 files changed, 37 insertions(+)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_bufmgr.c b/src/mesa/drivers/dri/i965/brw_bufmgr.c
> index 469895e..dbd13dd 100644
> --- a/src/mesa/drivers/dri/i965/brw_bufmgr.c
> +++ b/src/mesa/drivers/dri/i965/brw_bufmgr.c
> @@ -1133,6 +1133,33 @@ brw_bo_get_tiling(struct brw_bo *bo, uint32_t *tiling_mode,
>     return 0;
>  }
>  
> +int
> +brw_bo_set_tiling(struct brw_bo *bo, uint32_t tiling_mode,
> +                  uint32_t stride)
> +{
> +   struct brw_bufmgr *bufmgr = bo->bufmgr;
> +
> +   mtx_lock(&bufmgr->lock);

This mutex protects the buffer cache, which should not be containing
this bo. Changing the tiling of a shared active bo also should not
happen because the other parties will have already derived state from
the older tiling. So I don't see the purpose of this mutex here.

If we will need exclusive access to a bo, let's have a bo->lock.
-Chris


More information about the mesa-stable mailing list