[Mesa-dev] [PATCH v2] auxiliary/vl: use the correct screen index

Marek Olšák maraeo at gmail.com
Sat Jul 11 01:56:59 PDT 2015


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Fri, Jul 10, 2015 at 10:27 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> Inspired (copied) from Marek's commit for egl/x11
> commit 0b56e23e7f3(egl/dri2: use the correct screen index)
>
> v2: Fix copy/pasta errors.
>
> Cc: 10.6 <mesa-stable at lists.freedesktop.org>
> Cc: Marek Olšák <marek.olsak at amd.com>
> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
> ---
>  src/gallium/auxiliary/vl/vl_winsys_dri.c | 17 +++++++++++++----
>  1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/src/gallium/auxiliary/vl/vl_winsys_dri.c b/src/gallium/auxiliary/vl/vl_winsys_dri.c
> index 7e61b88..1e6613c 100644
> --- a/src/gallium/auxiliary/vl/vl_winsys_dri.c
> +++ b/src/gallium/auxiliary/vl/vl_winsys_dri.c
> @@ -293,6 +293,16 @@ vl_screen_get_private(struct vl_screen *vscreen)
>     return vscreen;
>  }
>
> +static xcb_screen_t *
> +get_xcb_screen(xcb_screen_iterator_t iter, int screen)
> +{
> +    for (; iter.rem; --screen, xcb_screen_next(&iter))
> +        if (screen == 0)
> +            return iter.data;
> +
> +    return NULL;
> +}
> +
>  struct vl_screen*
>  vl_screen_create(Display *display, int screen)
>  {
> @@ -334,8 +344,7 @@ vl_screen_create(Display *display, int screen)
>        goto free_query;
>
>     s = xcb_setup_roots_iterator(xcb_get_setup(scrn->conn));
> -   while (screen--)
> -       xcb_screen_next(&s);
> +
>     driverType = XCB_DRI2_DRIVER_TYPE_DRI;
>  #ifdef DRI2DriverPrimeShift
>     {
> @@ -351,7 +360,7 @@ vl_screen_create(Display *display, int screen)
>     }
>  #endif
>
> -   connect_cookie = xcb_dri2_connect_unchecked(scrn->conn, s.data->root, driverType);
> +   connect_cookie = xcb_dri2_connect_unchecked(scrn->conn, get_xcb_screen(s, screen)->root, driverType);
>     connect = xcb_dri2_connect_reply(scrn->conn, connect_cookie, NULL);
>     if (connect == NULL || connect->driver_name_length + connect->device_name_length == 0)
>        goto free_connect;
> @@ -370,7 +379,7 @@ vl_screen_create(Display *display, int screen)
>     if (drmGetMagic(fd, &magic))
>        goto free_connect;
>
> -   authenticate_cookie = xcb_dri2_authenticate_unchecked(scrn->conn, s.data->root, magic);
> +   authenticate_cookie = xcb_dri2_authenticate_unchecked(scrn->conn, get_xcb_screen(s, screen)->root, magic);
>     authenticate = xcb_dri2_authenticate_reply(scrn->conn, authenticate_cookie, NULL);
>
>     if (authenticate == NULL || !authenticate->authenticated)
> --
> 2.4.5
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list