[Mesa-dev] [PATCH 2/3] i965: Only write program to cache when it doesn't exist yet

Anuj Phogat anuj.phogat at gmail.com
Mon Jun 29 10:41:47 PDT 2015


On Thu, Jun 25, 2015 at 5:45 AM, Topi Pohjolainen
<topi.pohjolainen at intel.com> wrote:
> Current logic re-writes the same data when existing data is found.
> Not that this actually matters at the moment in practice, the
> contraint for finding matching data is too severe to ever allow
> data to be shared between two items in the cache.
>
> CC: Kenneth Graunke <kenneth at whitecape.org>
> Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
> ---
>  src/mesa/drivers/dri/i965/brw_state_cache.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_state_cache.c b/src/mesa/drivers/dri/i965/brw_state_cache.c
> index 97a41b9..d42b4b4 100644
> --- a/src/mesa/drivers/dri/i965/brw_state_cache.c
> +++ b/src/mesa/drivers/dri/i965/brw_state_cache.c
> @@ -314,6 +314,13 @@ brw_upload_cache(struct brw_cache *cache,
>      */
>     if (!brw_try_upload_using_copy(cache, item, data, aux)) {
>        item->offset = brw_alloc_item_data(cache, data_size);
> +
> +      /* Copy data to the buffer */
> +      if (brw->has_llc) {
> +         memcpy((char *)cache->bo->virtual + item->offset, data, data_size);
> +      } else {
> +         drm_intel_bo_subdata(cache->bo, item->offset, data_size, data);
> +      }
>     }
>
>     /* Set up the memory containing the key and aux_data */
> @@ -332,13 +339,6 @@ brw_upload_cache(struct brw_cache *cache,
>     cache->items[hash] = item;
>     cache->n_items++;
>
> -   /* Copy data to the buffer */
> -   if (brw->has_llc) {
> -      memcpy((char *) cache->bo->virtual + item->offset, data, data_size);
> -   } else {
> -      drm_intel_bo_subdata(cache->bo, item->offset, data_size, data);
> -   }
> -
>     *out_offset = item->offset;
>     *(void **)out_aux = (void *)((char *)item->key + item->key_size);
>     cache->brw->ctx.NewDriverState |= 1 << cache_id;
> --
> 1.9.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Sounds like a right thing to do. It's worth waiting to see comments
from other people before pushing it upstream.

Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>


More information about the mesa-dev mailing list