[PATCH 0/2] winex11: use GLX 1.3

Miklós Máté mtmkls at gmail.com
Thu May 26 16:43:12 CDT 2016


Motivation:
With DRI it's the client-side GLX code of Mesa that stores the state about
the drawables. It doesn't know about XCreateWindow and XDestroyWindow
calls, because it's completely separate from xlib. Unless glXCreateWindow
was called, it only assigns DRI resources to the GLX object while it's
bound to a context to avoid resource leak.

Most applications are fine with this -- in fact practically nobody calls
glXCreateWindow. Star Wars: Knights of the Old Republic, however, switches
back-and-forth between the window and a series of pbuffers when drawing
its post-process effects. Without glXCreateWindow the window loses its
contents when a pbuffer is made current, and thus the followings happen:
- all the dynamic objects disappear when soft shadows are enabled, as they
  are drawn after the shadows, and they fail depth test, because the newly
  allocated depth buffer is all zeroes (the color buffer keeps its contents
  by luck with DRI2, because it gets reallocated at the same place, but not
  anymore with DRI3)
- MSAA is completely broken when post-process is enabled
Patch 2/2 of this series fixes both of the above issues in SW:KotOR.

Signed-off-by: Miklós Máté <mtmkls at gmail.com>


Miklós Máté (2):
  winex11: use GLX 1.3 for pixmaps
  winex11: use GLX 1.3 for windows

 dlls/winex11.drv/opengl.c | 120 ++++++++++++++++++++++++++--------------------
 1 file changed, 67 insertions(+), 53 deletions(-)

-- 
2.8.1




More information about the wine-patches mailing list