http://bugs.winehq.org/show_bug.cgi?id=5309
Summary: Wine performance lost on some CJK environment Product: Wine Version: CVS Platform: Other OS/Version: Linux Status: UNCONFIRMED Severity: minor Priority: P2 Component: wine-x11driver AssignedTo: wine-bugs@winehq.org ReportedBy: hzhrong@gmail.com
I notice some CJK users complain that wine is too slow to run apps, when clicking menu, or opening dialog box, it takes too long time to display. And they said, if killed X input method, wine run fast again. I haven't meet this problem until I changed X FontPath one day, yes, Wine run very slowly, got very import performance problem. When I killed X input method, it's fast again. So I realize it's a XIM related bug. While reviewing dlls/x11drv/xim.c, in function X11DRV_CreateIC, about line 487, I see the following code: fontSet = XCreateFontSet(display, "*", /*FIXME*/ &list, &count, NULL);
So, it's clear that it cause the problem. Looking for a matched "*" X fontSet is ofen fast if there is no X core font lacked, otherwise it will take a long time. In my case, in zh_CN.GBK or zh_CN.UTF-8 locale, X core font *-gbk-0 are missing. When I add these fonts back, the problem resolved. For a solution, I suggest to use "fixed" instead of "*", since modern X input method apps doesn't use XFontSet anymore. Change to: fontSet = XCreateFontSet(display, "fixed", &list, &count, NULL);