Hi Ben,

Just realised that the CrOS team might be interested in this as well -
adding Tomasz.

On 21 April 2017 at 18:17, Ben Widawsky <[email protected]> wrote:
> Could do smarter stuff with the mappings. I decided not to.
>
> Tested with kmscube. No current clients seem to use non-zero x0, y0, so
> that's untested.
>
> Cc: Tapani Pälli <[email protected]> (AndroidIA?)
Tomasz, Tapani,

With this in place you should be able to drop the [patched] 3.3Kloc
drm_gralloc in favour of the 0.6Kloc gbm_gralloc [1].
Latter is what the cool kids are using ;-)

[1] https://github.com/robherring/gbm_gralloc

> Cc: Emil Velikov <[email protected]>
> Signed-off-by: Ben Widawsky <[email protected]>
> ---
>  src/mesa/drivers/dri/i965/intel_screen.c | 39 
> ++++++++++++++++++++++++++++++--
>  1 file changed, 37 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_screen.c 
> b/src/mesa/drivers/dri/i965/intel_screen.c
> index 34a5f18af2..f89de3c9d4 100644
> --- a/src/mesa/drivers/dri/i965/intel_screen.c
> +++ b/src/mesa/drivers/dri/i965/intel_screen.c
> @@ -926,6 +926,41 @@ intel_from_planar(__DRIimage *parent, int plane, void 
> *loaderPrivate)
>      return image;
>  }
>
> +static void *
> +intel_map_image(__DRIcontext *context, __DRIimage *image,
> +                 int x0, int y0, int width, int height,
> +                 unsigned int flags, int *stride, void **data)
> +{
> +   if (!image || !data || *data)
> +      return NULL;
> +
> +   /* FIXME: add width/height check */
> +
> +   brw_bo_reference(image->bo);
> +
> +   uintptr_t offset =
> +      y0 * image->pitch + x0 * _mesa_get_format_bytes(image->format);
> +   void *bo_map = brw_bo_map__wc(image->bo);
> +
> +   if (bo_map) {
> +      *data = image->bo;
> +      *stride = image->pitch;
> +   } else {
> +      *data = NULL;
> +      *stride = 0;
We shouldn't be touching these if the function fails.

> +      brw_bo_unreference(image->bo);
Please explicitly return NULL here, since offset can be non-zero
should brw_bo_map__wc() fail.

> +   }
> +
> +   return bo_map + offset;


Thanks
Emil
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to