[cairo] [PATCH 62/72] drm/i915: split image_caches array into struct for better readability

Chris Wilson chris at chris-wilson.co.uk
Tue Dec 29 07:04:25 PST 2015


On Tue, Dec 29, 2015 at 10:17:40AM +0100, Enrico Weigelt, metux IT consult wrote:
> Instead of using an array with unnamed index numbers, move to an
> struct with named fields for the individual image cache instances.
> 
> Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt at gr13.net>
> ---
>  src/drm/cairo-drm-i915-private.h | 5 ++++-
>  src/drm/cairo-drm-i915-surface.c | 8 ++++----
>  2 files changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/src/drm/cairo-drm-i915-private.h b/src/drm/cairo-drm-i915-private.h
> index fa53539..73f5730 100644
> --- a/src/drm/cairo-drm-i915-private.h
> +++ b/src/drm/cairo-drm-i915-private.h
> @@ -704,7 +704,10 @@ struct i915_device {
>      uint32_t last_source_fragment;
>      uint32_t clear_alpha;
>  
> -    cairo_list_t image_caches[2];

Or you could use named indices. Anyway image_caches[] is a dead end.
Having a cache for in-flight images is useful, but the high level
decision of what to cache for long periods of time is best left to the
client. And the closest we have to a clean texture atlas interface are
glyphs.

> +    struct {
> +	cairo_list_t argb32;
> +	cairo_list_t a8;
> +    } image_caches;
>  
>      uint32_t batch_header[13];
>      uint32_t batch_base[I915_BATCH_SIZE / sizeof (uint32_t)];
> diff --git a/src/drm/cairo-drm-i915-surface.c b/src/drm/cairo-drm-i915-surface.c
> index 42962b2..60a2a91 100644
> --- a/src/drm/cairo-drm-i915-surface.c
> +++ b/src/drm/cairo-drm-i915-surface.c
> @@ -2657,13 +2657,13 @@ i915_surface_create_from_cacheable_image_internal (i915_device_t *device,
>      case CAIRO_FORMAT_RGB24:
>      case CAIRO_FORMAT_RGB16_565:
>      case CAIRO_FORMAT_RGB30:
> -	caches = &device->image_caches[0];
> +	caches = &(device->image_caches.argb32);
>  	format = CAIRO_FORMAT_ARGB32;
>  	bpp = 4;
>  	break;
>      case CAIRO_FORMAT_A8:
>      case CAIRO_FORMAT_A1:
> -	caches = &device->image_caches[1];
> +	caches = &(device->image_caches.a8);

Please reduce the number of random brackets in the patches.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the cairo mailing list