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 2d83a50352b7bc7cb2d966561452f938950ac1c0..833ea7d4cc125b53d9a51115181e26b53fe7eb84 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 */