[Mesa-stable] [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-stable
mailing list