[Bug 43969] New: openGL SwapBuffers with NULL context

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Nov 4 12:49:22 CDT 2017


https://bugs.winehq.org/show_bug.cgi?id=43969

            Bug ID: 43969
           Summary: openGL SwapBuffers with NULL context
           Product: Wine
           Version: 2.19
          Hardware: x86
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: winex11.drv
          Assignee: wine-bugs at winehq.org
          Reporter: jp-dev at inbox.ru
      Distribution: ---

A fragment of openGL code works under Windows and crashes under wine staging
2.19 at glxdrv_wglSwapBuffers. This code can be found under the VSTGUI project
(see https://git.io/vFCwl).

The problem in wine is triggered because the library makes a null context
current before the invocation of swapBuffers. As strange as it may be, Windows
is able to render in this condition.
  wglMakeCurrent (deviceContext, 0);
  SwapBuffers (deviceContext);
When I pass a context instead of 0, wine works as well.

This reveals a pair of problems. First, there is a null pointer dereference in
wgl_SwapBuffers. ctx->hdc is an invalid access because of the null context (I
have added the `&& ctx` check).
    if (escape.gl_drawable && ctx) ExtEscape( ctx->hdc, X11DRV_ESCAPE,
sizeof(escape), (LPSTR)&escape, 0, NULL );

This change allows the program to run without crash, but the result is no
rendering. My test configuration on Windows was 8.1 with the vmware GL
passthrough driver.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list