[Mesa-dev] [PATCH 26/34] i965: Pretend that CCS modified images are two planes
Jason Ekstrand
jason at jlekstrand.net
Tue Jan 31 21:16:24 UTC 2017
On Mon, Jan 23, 2017 at 10:21 PM, Ben Widawsky <ben at bwidawsk.net> wrote:
> Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
> Acked-by: Daniel Stone <daniels at collabora.com>
> ---
> src/mesa/drivers/dri/i965/intel_screen.c | 18 ++++++++++++++----
> 1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_screen.c
> b/src/mesa/drivers/dri/i965/intel_screen.c
> index 971013f2dd..85070bb54d 100644
> --- a/src/mesa/drivers/dri/i965/intel_screen.c
> +++ b/src/mesa/drivers/dri/i965/intel_screen.c
> @@ -809,7 +809,7 @@ intel_query_image(__DRIimage *image, int attrib, int
> *value)
> case __DRI_IMAGE_ATTRIB_FOURCC:
> return intel_lookup_fourcc(image->dri_format, value);
> case __DRI_IMAGE_ATTRIB_NUM_PLANES:
> - *value = 1;
> + *value = image->aux_offset ? 2: 1;
> return true;
> case __DRI_IMAGE_ATTRIB_OFFSET:
> *value = image->offset;
> @@ -1018,9 +1018,18 @@ intel_from_planar(__DRIimage *parent, int plane,
> void *loaderPrivate)
> int width, height, offset, stride, dri_format, index;
> struct intel_image_format *f;
> __DRIimage *image;
> -
> - if (parent == NULL || parent->planar_format == NULL)
> - return NULL;
> + bool is_aux = parent->aux_offset && plane == 1;
>
Why is this outside the if? It seems to only apply when other plane stuff
is NULL as below.
> +
> + if (parent == NULL || parent->planar_format == NULL) {
> + if (is_aux) {
> + offset = parent->aux_offset;
> + stride = ALIGN(parent->pitch / 32, 128);
> + height = ALIGN(DIV_ROUND_UP(parent->height, 16), 32);
> + dri_format = parent->dri_format;
> + goto done;
>
Do we really need the goto? Why not just put the stuff below in an else?
> + }
> + return NULL;
> + }
>
> f = parent->planar_format;
>
> @@ -1034,6 +1043,7 @@ intel_from_planar(__DRIimage *parent, int plane,
> void *loaderPrivate)
> offset = parent->offsets[index];
> stride = parent->strides[index];
>
> +done:
> image = intel_allocate_image(parent->screen, dri_format,
> loaderPrivate);
> if (image == NULL)
> return NULL;
> --
> 2.11.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170131/1f250d06/attachment.html>
More information about the mesa-dev
mailing list