Note: This is feature is still under active development and should be considered beta quality, but should be working well enough to be useful. Please report success or failure with specific OpenGL applications to the cygwin-xfree mailing list.
Cygwin/X supports hardware accelerated OpenGL rendering in the X server using the native Windows OpenGL (WGL) interface.
Use the command line option
-wgl to the X server to turn on the use of the native Windows OpenGL implementation.
This option is only supported by multiwindow mode currently.
If you don't use this option, the X server will use software rendering.
For remote clients, Mesa's libGL prefers to use client-side rendering and transfer the image to the server using xlib. To force indirect rendering (which takes place on the server), you must do export LIBGL_ALWAYS_INDIRECT=1 before starting the client application. There's a performance trade-off between rendering performance and network latency, so you should try both direct and indirect rendering and see which performs best in your specific circumstances. Generally, accelerated indirect rendering should be more performant for clients which render complex scenes.
For local clients, indirect rendering is the default, so no special steps are needed.
If you have set things up successfully, glxinfo | grep OpenGL should output something mentioning your graphics card vendor. If it mentions Mesa, you still have software rendering
Please ensure you are using the latest display drivers for your graphics hardware before reporting any visual issues with WGL.
OpenGL windows with static contents aren't re-drawn when occluded by a native Window and then exposed. Workaround: force the window to redraw, e.g. by resizing it.
When an OpenGL window is behind a native application window which uses layered windows for translucency, the OpenGL rendering is drawn over the top, flickering.