diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.cindex 486f7db..3e53d94 100644--- a/dlls/winex11.drv/opengl.c+++ b/dlls/winex11.drv/opengl.c@@ -622,38 +622,26 @@ BOOL X11DRV_SwapBuffers(X11DRV_PDEVICE * XVisualInfo *X11DRV_setup_opengl_visual( Display *display ) { XVisualInfo *visual = NULL;- /* In order to support OpenGL or D3D, we require a double-buffered visual and stencil buffer support, */- int dblBuf[] = {GLX_RGBA,GLX_DEPTH_SIZE, 24, GLX_STENCIL_SIZE, 8, GLX_ALPHA_SIZE, 8, GLX_DOUBLEBUFFER, None};+ int cfgIndex;+ int cfgArray[][] = {+ { GLX_RGBA, GLX_DEPTH_SIZE, 32, GLX_STENCIL_SIZE, 8, GLX_ALPHA_SIZE, 8, GLX_DOUBLEBUFFER, None },+ { GLX_RGBA, GLX_DEPTH_SIZE, 24, GLX_STENCIL_SIZE, 8, GLX_ALPHA_SIZE, 8, GLX_DOUBLEBUFFER, None },+ { GLX_RGBA, GLX_DEPTH_SIZE, 16, GLX_STENCIL_SIZE, 8, GLX_DOUBLEBUFFER, None },+ { GLX_RGBA, GLX_DEPTH_SIZE, 16, GLX_DOUBLEBUFFER, None}+ }; if (!has_opengl()) return NULL;-- wine_tsx11_lock();- visual = pglXChooseVisual(display, DefaultScreen(display), dblBuf);- wine_tsx11_unlock();- if (visual == NULL) {- /* fallback to 16 bits depth, no alpha */- int dblBuf2[] = {GLX_RGBA,GLX_DEPTH_SIZE, 16, GLX_STENCIL_SIZE, 8, GLX_DOUBLEBUFFER, None};- WARN("Failed to get a visual with at least 24 bits depth\n");-++ for (cfgIndex = 1; cfgIndex < 4; ++cfgIndex) { wine_tsx11_lock();- visual = pglXChooseVisual(display, DefaultScreen(display), dblBuf2);+ visual = pglXChooseVisual(display, DefaultScreen(display), cfgArray[cfgIndex]); wine_tsx11_unlock();- if (visual == NULL) {- /* fallback to no stencil */- int dblBuf2[] = {GLX_RGBA,GLX_DEPTH_SIZE, 16, GLX_DOUBLEBUFFER, None};- WARN("Failed to get a visual with at least 8 bits of stencil\n");-- wine_tsx11_lock();- visual = pglXChooseVisual(display, DefaultScreen(display), dblBuf2);- wine_tsx11_unlock();- if (visual == NULL) {- /* This should only happen if we cannot find a match with a depth size 16 */- FIXME("Failed to find a suitable visual\n");- return visual;- }+ if (visual != NULL) {+ TRACE("Found visual at index %d, Visual ID %lx\n", cfgIndex, visual->visualid);+ return visual; } }- TRACE("Visual ID %lx Chosen\n",visual->visualid);- return visual;+ FIXME("Failed to find a suitable visual\n");+ return NULL; } #else /* no OpenGL includes */