[Pixman] [PATCH 1/2] pixman: Add support for argb/xrgb float formats, v3.

Chris Wilson chris at chris-wilson.co.uk
Wed Oct 3 08:47:47 UTC 2018


Quoting Maarten Lankhorst (2018-08-01 13:41:33)
> Pixman is already using the floating point formats internally, expose
> this capability in case someone wants to support higher bit per
> component formats.
> 
> This is useful for igt which depends on cairo to do the rendering.
> It can use it to convert floats internally to planar Y'CbCr formats,
> or to F16.
> 
> Changes since v1:
> - Use RGBA 128 bits and RGB 96 bits memory layouts, to better match the opengl format.
> Changes since v2:
> - Add asserts in accessor and for strides to force alignment.
> - Move test changes to their own commit.
> 
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> ---
>  pixman/pixman-access.c     | 128 ++++++++++++++++++++++++++++++++++++-
>  pixman/pixman-bits-image.c |   3 +
>  pixman/pixman-image.c      |   4 ++
>  pixman/pixman.h            |  32 ++++++----
>  4 files changed, 155 insertions(+), 12 deletions(-)
> 
> diff --git a/pixman/pixman-access.c b/pixman/pixman-access.c
> index 4f0642d77785..10fa049becf4 100644
> --- a/pixman/pixman-access.c
> +++ b/pixman/pixman-access.c
> @@ -642,6 +642,48 @@ fetch_scanline_a2r10g10b10_float (bits_image_t *  image,
>  }
>  
>  /* Expects a float buffer */
> +#ifndef PIXMAN_FB_ACCESSORS
> +static void
> +fetch_scanline_rgb_float_float (bits_image_t   *image,
> +                               int             x,
> +                               int             y,
> +                               int             width,
> +                               uint32_t *      b,
> +                               const uint32_t *mask)
> +{
> +    const float *bits = (float *)image->bits + y * image->rowstride;

rowstride is in bytes, is it not?
-Chris


More information about the Pixman mailing list