Thanks for the suggestions. I've narrowed one of the issues down to WineEngGetGlyphOutline in dlls/gdi32/freetype.c.
The pitch is 6640 and the height is 53003. This means that a buffer of ~335Mb has been allocated and then memset. This is where the slow down is occurring (because of the memset). I suspect the resultant crash is also because of this. I would suggest that limits need to be placed on the maximum pitch and height. I do not however believe that this is the root cause just one of the symptoms. On 5 October 2011 18:37, Marcus Meissner <[email protected]> wrote: > On Wed, Oct 05, 2011 at 04:53:18PM +0100, Damian Dixon wrote: > > Hi, > > > > I was attempting to use Wine 1.3.29 (in OpenSUSE 11.4 x86) and because of > > issues pulled the source from git last night and still have problems. > > > > I am having performance issues with DrawText (5 odd seconds to draw a > simple > > string) and the occasional X Error and crash. > > > > The X Error is consistent and is as follows: > > > > fixme:advapi:SetSecurityInfo stub > > X Error of failed request: BadLength (poly request too large or internal > > Xlib length error) > > Major opcode of failed request: 151 (RENDER) > > Minor opcode of failed request: 17 (RenderCreateGlyphSet) > > Serial number of failed request: 41091 > > Current serial number in output stream: 41571 > > Process of pid=0023 has terminated > > > > > > The crash less consistent but is dependent upon the amount of text I > attempt > > to draw. > > > > The last version I know this worked in was 1.1.39. > > > > I've a few things to still try out before I attempt to create an RBT. > > To get a backtrace and be able to dump some datastructures, run with > > WINEDEBUG=+synchronous wine foo.exe > > This will bring it into the debugger once the condition happens. > > CIao, MArcus >
