So if I start a VNC server with the following command:
vncserver :1 -depth 16 -geometry 1024x768
Then notepad crashes on startup while initializing OpenGL. More precisely the crash happens in X11DRV_WineGL_InitOpenglInfo() on line 304 of winex11.drv/opengl.c. The reason for the crash is an OpenGL/X11 assertion:
glxcmds.c:343: CreateContext: Assertion "mode != ((void *)0)" failed
This seems like a VNC/OpenGL/X11 bug because Wine works fine if VNC is started in 15bpp or 24bpp. Still, the problem is that as this is part of the winex11 initialization it impacts all applications (including the DIB conformance tests).
Does anyone see a way to avoid the crash? (maybe detect VNC before that call, but how?)
Note: I'm using VNC 4.1.1+X4.3.0-2. Here's the xdpyinfo output in that mode:
name of display: :1.0 version number: 11.0 vendor string: The XFree86 Project, Inc vendor release number: 40300000 XFree86 version: 4.3.0 maximum request size: 4194300 bytes motion buffer size: 256 bitmap unit, bit order, padding: 32, LSBFirst, 32 image byte order: LSBFirst number of supported pixmap formats: 2 supported pixmap formats: depth 1, bits_per_pixel 1, scanline_pad 32 depth 16, bits_per_pixel 16, scanline_pad 32 keycode range: minimum 8, maximum 255 focus: window 0x400013, revert to Parent number of extensions: 23 BIG-REQUESTS DEC-XTRAP DOUBLE-BUFFER Extended-Visual-Information FontCache GLX LBX MIT-SCREEN-SAVER MIT-SHM MIT-SUNDRY-NONSTANDARD RECORD SECURITY SGI-GLX SHAPE SYNC TOG-CUP VNC-EXTENSION X-Resource XC-APPGROUP XC-MISC XFree86-Bigfont XTEST XVideo default screen number: 0 number of screens: 1
screen #0: dimensions: 1024x768 pixels (260x195 millimeters) resolution: 100x100 dots per inch depths (2): 1, 16 root window id: 0x2e depth of root window: 16 planes number of colormaps: minimum 1, maximum 1 default colormap: 0x21 default number of colormap cells: 64 preallocated pixels: black 0, white 65535 options: backing-store YES, save-unders YES largest cursor: 1024x768 current input event mask: 0xd83f3f KeyPressMask KeyReleaseMask ButtonPressMask ButtonReleaseMask EnterWindowMask LeaveWindowMask Button1MotionMask Button2MotionMask Button3MotionMask Button4MotionMask Button5MotionMask ButtonMotionMask SubstructureNotifyMask SubstructureRedirectMask PropertyChangeMask ColormapChangeMask number of visuals: 8 default visual id: 0x24 visual: visual id: 0x24 class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 8 bits visual: visual id: 0x25 class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0x3f, 0x7c0, 0xf800 significant bits in color specification: 8 bits visual: visual id: 0x26 class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0x3f, 0x7c0, 0xf800 significant bits in color specification: 8 bits visual: visual id: 0x27 class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0x3f, 0x7c0, 0xf800 significant bits in color specification: 8 bits visual: visual id: 0x28 class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0x3f, 0x7c0, 0xf800 significant bits in color specification: 8 bits visual: visual id: 0x29 class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0x3f, 0x7c0, 0xf800 significant bits in color specification: 8 bits visual: visual id: 0x2a class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0x3f, 0x7c0, 0xf800 significant bits in color specification: 8 bits visual: visual id: 0x2b class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0x3f, 0x7c0, 0xf800 significant bits in color specification: 8 bits