Mike Hearn wrote:
Mike Hearn mike@plan99.net Optimize thunks by storing GL context in the thread environment block
good job. this fixed the BadMatch error in World of Warcraft and also increased performance, from ~20fps to ~25fps.
tom
Hi Tom,
Where can I find more information about this, or a path to try? I'm currently getting the BadMatch error and I would like to try this solution
Thanks,
W
From: Tomas Carnecky tom@dbservice.com To: wine-devel@winehq.org Subject: Re: Store GL context in the TEB Date: Tue, 21 Mar 2006 18:04:39 +0100
Mike Hearn wrote:
Mike Hearn mike@plan99.net Optimize thunks by storing GL context in the thread environment block
good job. this fixed the BadMatch error in World of Warcraft and also increased performance, from ~20fps to ~25fps.
tom
_________________________________________________________________ Take advantage of powerful junk e-mail filters built on patented Microsoft® SmartScreen Technology. http://join.msn.com/?pgmarket=en-ca&page=byoa/prem&xAPID=1994&DI... Start enjoying all the benefits of MSN® Premium right now and get the first two months FREE*.
On Tue, 21 Mar 2006 13:03:13 -0500, Wino Rojo wrote:
Where can I find more information about this, or a path to try? I'm currently getting the BadMatch error and I would like to try this solution
Just wait until it's merged then upgrade, it's the easiest way.
Tomas Carnecky wrote:
Mike Hearn wrote:
Mike Hearn mike@plan99.net Optimize thunks by storing GL context in the thread environment block
good job. this fixed the BadMatch error in World of Warcraft and also increased performance, from ~20fps to ~25fps.
Maybe that was too soon.. I can login with some characters, with others I still get the BadMatch error. This bug may be related to the minimap bug that caused opengl to crash when you entered a building, because I can login with my characters than stand outside, but now with those that stands in an inn (building) or in Ironforge.
Does anyone remeber how the minimap bug was fixed and if this BadMatch bug may be related to it?
tom
Tomas Carnecky wrote:
Tomas Carnecky wrote:
Mike Hearn wrote:
Mike Hearn mike@plan99.net Optimize thunks by storing GL context in the thread environment block
good job. this fixed the BadMatch error in World of Warcraft and also increased performance, from ~20fps to ~25fps.
Maybe that was too soon.. I can login with some characters, with others I still get the BadMatch error. This bug may be related to the minimap bug that caused opengl to crash when you entered a building, because I can login with my characters than stand outside, but now with those that stands in an inn (building) or in Ironforge.
Does anyone remeber how the minimap bug was fixed and if this BadMatch bug may be related to it?
BadMatch is generated if the depth of pixmap does not match the GLX_BUFFER_SIZE value of vis, or if pixmap was not created with respect to the same screen as vis.
Futher investigation revealed this: when create_glxpixmap() is called, physDev->depth and physDev->bitmap->pixmap_depth are 1, but GLX_BUFFER_SIZE from the visual returns 32, I don't know how to get the depth directly from the pixmap (in case physDev->bitmap->pixmap_depth is not up-to-date), so any clarification how the bimap/pixmap code works would be great.
Also, when looking where the depth is changed, I came across X11DRV_SelectBitmap(), there you change the depth if physDev->depth and physBitmap->pixmap_depth don't match.
In the trace I see that WoW creates lots of bitmaps and the last time a bitmap is selected the depth is changed to 1:
trace:x11drv:X11DRV_CreateBitmap (0x340) 32x32 1 bpp trace:x11drv:X11DRV_CreateBitmap physBitmap->pixmap_depth: 1 trace:x11drv:X11DRV_SetBitmapBits (bmp=0x340, bits=0x7fd64e50, count=0x80) trace:x11drv:X11DRV_SetBitmapBits (physBitmap->pixmap_depth=1 trace:x11drv:X11DRV_CreateBitmap (0x33c) 32x32 24 bpp trace:x11drv:X11DRV_CreateBitmap physBitmap->pixmap_depth: 24 trace:x11drv:X11DRV_SetBitmapBits (bmp=0x33c, bits=0x7fd888b8, count=0xc00) trace:x11drv:X11DRV_SetBitmapBits (physBitmap->pixmap_depth=24 trace:x11drv:X11DRV_SelectBitmap changing depth of physDev(0x7fd64ed8) to 24 trace:x11drv:X11DRV_SelectBitmap changing depth of physDev(0x7fd64ed8) to 1
And also, I don't see anywhere in the trace that the bitmap depth would be 32 (to match GLX_BUFFER_SIZE).
tom