drisw: Fix drawable creation against non-default screens
authorAdam Jackson <ajax@redhat.com>
Tue, 3 Jan 2012 19:39:28 +0000 (14:39 -0500)
committerAdam Jackson <ajax@redhat.com>
Wed, 4 Jan 2012 16:23:55 +0000 (11:23 -0500)
We don't want to match the visual against the default screen.  If the
drawable is on a non-default screen then the appropriate visual might not
exist on the default screen.  Conversely, if the same visual is
available on multiple screens then simply selecting for the right VID is
sufficient, since the server has promised that the same visual is
compatible with multiple screens.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
src/glx/drisw_glx.c

index 2d83a50..833ea7d 100644 (file)
@@ -87,9 +87,8 @@ XCreateDrawable(struct drisw_drawable * pdp,
    XChangeGC(dpy, pdp->swapgc, GCGraphicsExposures, &gcvalues);
 
    /* visual */
-   visTemp.screen = DefaultScreen(dpy);
    visTemp.visualid = visualid;
-   visMask = (VisualScreenMask | VisualIDMask);
+   visMask = VisualIDMask;
    pdp->visinfo = XGetVisualInfo(dpy, visMask, &visTemp, &num_visuals);
 
    /* create XImage */