<div dir="ltr">Friendly ping ... this is not in master yet.</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 31, 2016 at 12:58 AM, Eric Engestrom <span dir="ltr"><<a href="mailto:eric@engestrom.ch" target="_blank">eric@engestrom.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, Aug 30, 2016 at 04:49:53PM -0700, <a href="mailto:krh@bitplanet.net">krh@bitplanet.net</a> wrote:<br>
> From: "Kristian H. Kristensen" <<a href="mailto:hoegsberg@chromium.org">hoegsberg@chromium.org</a>><br>
><br>
> As long as the dma_buf fds import to the same drm_intel_bo, we're fine.<br>
><br>
> Reviewed-by: Stéphane Marchesin <<a href="mailto:marcheu@chromium.org">marcheu@chromium.org</a>><br>
<br>
</span>Looks good to me.<br>
Reviewed-by: Eric Engestrom <<a href="mailto:eric@engestrom.ch">eric@engestrom.ch</a>><br>
<div class="HOEnZb"><div class="h5"><br>
> ---<br>
>  src/mesa/drivers/dri/i965/<wbr>intel_screen.c | 36 +++++++++++++++++++++++-------<wbr>--<br>
>  1 file changed, 26 insertions(+), 10 deletions(-)<br>
><br>
> diff --git a/src/mesa/drivers/dri/i965/<wbr>intel_screen.c b/src/mesa/drivers/dri/i965/<wbr>intel_screen.c<br>
> index 84977a7..560935d 100644<br>
> --- a/src/mesa/drivers/dri/i965/<wbr>intel_screen.c<br>
> +++ b/src/mesa/drivers/dri/i965/<wbr>intel_screen.c<br>
> @@ -706,11 +706,6 @@ intel_create_image_from_fds(__<wbr>DRIscreen *screen,<br>
>     if (fds == NULL || num_fds < 1)<br>
>        return NULL;<br>
><br>
> -   /* We only support all planes from the same bo */<br>
> -   for (i = 0; i < num_fds; i++)<br>
> -      if (fds[0] != fds[i])<br>
> -         return NULL;<br>
> -<br>
>     f = intel_image_format_lookup(<wbr>fourcc);<br>
>     if (f == NULL)<br>
>        return NULL;<br>
> @@ -740,11 +735,25 @@ intel_create_image_from_fds(__<wbr>DRIscreen *screen,<br>
>           size = end;<br>
>     }<br>
><br>
> -   image->bo = drm_intel_bo_gem_create_from_<wbr>prime(intelScreen->bufmgr,<br>
> -                                                  fds[0], size);<br>
> -   if (image->bo == NULL) {<br>
> -      free(image);<br>
> -      return NULL;<br>
> +   /* We only support all planes from the same bo, but the fds may be<br>
> +    * different. Make sure all fds import to the same bo. The kernel and<br>
> +    * libdrm guarantees this, if the fds refer to the same kernel bo. */<br>
> +   for (i = 0; i < num_fds; i++) {<br>
> +      drm_intel_bo *bo =<br>
> +         drm_intel_bo_gem_create_from_<wbr>prime(intelScreen->bufmgr, fds[i], size);<br>
> +      if (bo == NULL)<br>
> +         goto err_out;<br>
> +<br>
> +      if (i == 0) {<br>
> +         image->bo = bo;<br>
> +      } else {<br>
> +         /* We need to unref the bo in either case, so do it up front. We can<br>
> +          * still compare the pointers below to see if the bo matches.<br>
> +          */<br>
> +         drm_intel_bo_unreference(bo);<br>
> +         if (image->bo != bo)<br>
> +            goto err_out;<br>
> +      }<br>
>     }<br>
><br>
>     if (f->nplanes == 1) {<br>
> @@ -753,6 +762,13 @@ intel_create_image_from_fds(__<wbr>DRIscreen *screen,<br>
>     }<br>
><br>
>     return image;<br>
> +<br>
> +err_out:<br>
> +   if (image->bo)<br>
> +      drm_intel_bo_unreference(<wbr>image->bo);<br>
> +   free(image);<br>
> +<br>
> +   return NULL;<br>
>  }<br>
><br>
>  static __DRIimage *<br>
> --<br>
> 2.8.0.rc3.226.g39d4020<br>
><br>
> ______________________________<wbr>_________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
</div></div></blockquote></div><br></div>