The recursion problem is a known issue. It is not really Wine's fault but actually Windows its fault. The problem is that native opengl32.dll uses ddraw.dll. A possible solution (which I never experimented with) is to load the ICD driver directly and skip opengl32.dll altogether. It would require some custom WGL calls to the ICD. I'm not sure if this will work though since I'm not sure if the ICD drivers export GL 1.1 calls (those are loaded from opengl32.dll and 1.1+ is loaded from the ICD driver). It migh tbe cleanest to write an opengl32 wrapper around the ICD.