Fix PictureMatchVisual(). format->direct.{red,green,blue}Mask are CARD16.
Therefore, we need to cast them to, e.g., unsigned long, before shifting
and comparing with pVisual->{red,green,blue}Mask, that are unsigned long.

Index: xsrc/external/mit/xorg-server/dist/render/picture.c
===================================================================
RCS file: /home/netbsd/xsrc/external/mit/xorg-server/dist/render/picture.c,v
retrieving revision 1.1.1.7
diff -p -u -r1.1.1.7 picture.c
--- xsrc/external/mit/xorg-server/dist/render/picture.c	31 Dec 2018 09:36:09 -0000	1.1.1.7
+++ xsrc/external/mit/xorg-server/dist/render/picture.c	28 May 2021 08:03:01 -0000
@@ -527,12 +527,12 @@ PictureMatchVisual(ScreenPtr pScreen, in
                     return format;
             }
             else {
-                if (format->direct.redMask << format->direct.red ==
-                    pVisual->redMask &&
-                    format->direct.greenMask << format->direct.green ==
-                    pVisual->greenMask &&
-                    format->direct.blueMask << format->direct.blue ==
-                    pVisual->blueMask) {
+                if ((unsigned long)format->direct.redMask <<
+		    format->direct.red == pVisual->redMask &&
+                    (unsigned long)format->direct.greenMask <<
+		    format->direct.green == pVisual->greenMask &&
+                    (unsigned long)format->direct.blueMask <<
+		    format->direct.blue == pVisual->blueMask) {
                     return format;
                 }
             }
Index: xsrc/external/mit/xorg-server.old/dist/render/picture.c
===================================================================
RCS file: /home/netbsd/xsrc/external/mit/xorg-server.old/dist/render/picture.c,v
retrieving revision 1.1.1.1
diff -p -u -r1.1.1.1 picture.c
--- xsrc/external/mit/xorg-server.old/dist/render/picture.c	9 Jun 2016 09:08:01 -0000	1.1.1.1
+++ xsrc/external/mit/xorg-server.old/dist/render/picture.c	28 May 2021 09:28:55 -0000
@@ -553,12 +553,12 @@ PictureMatchVisual (ScreenPtr pScreen, i
 	    }
 	    else
 	    {
-		if (format->direct.redMask << format->direct.red == 
-		    pVisual->redMask &&
-		    format->direct.greenMask << format->direct.green == 
-		    pVisual->greenMask &&
-		    format->direct.blueMask << format->direct.blue == 
-		    pVisual->blueMask)
+		if ((unsigned long)format->direct.redMask <<
+		    format->direct.red == pVisual->redMask &&
+		    (unsigned long)format->direct.greenMask <<
+		    format->direct.green == pVisual->greenMask &&
+		    (unsigned long)format->direct.blueMask <<
+		    format->direct.blue == pVisual->blueMask)
 		{
 		    return format;
 		}