You are not logged in.

#1 2008-04-17 05:20:55

shazeal
Member
From: New Zealand
Registered: 2007-06-05
Posts: 341

World of Warcraft - Fixes.

Just an update to http://bbs.archlinux.org/viewtopic.php?id=42779.

Appart from the wine changes found at http://www.wowwiki.com/Linux/Wine, I thought I would post the other fixes I am using to get WoW working correctly.

1. Patching wine to fix desktop switching issues (Causes problems with Ventrilo). This may only be a Gnome issue, fluxbox does not seem to exhibit any issues without this patch.

diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index aad09c6..1f9d2a9 100644 (file)
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -570,8 +570,8 @@ static void EVENT_FocusOut( HWND hwnd, XEvent *xev )
            case we don't have to change the foreground window to 0 */
         if (hwnd == GetForegroundWindow())
         {
-            TRACE( "lost focus, setting fg to desktop\n" );
-            SetForegroundWindow( GetDesktopWindow() );
+            TRACE( "lost focus, setting fg to 0\n" );
+            SetForegroundWindow( 0 );
         }
     }
 }

2. Patching Xorg server to fix keys getting stuck.

diff --git a/include/xkbsrv.h b/include/xkbsrv.h
index 167dbec..0352006 100644
--- a/include/xkbsrv.h
+++ b/include/xkbsrv.h
@@ -263,7 +263,7 @@ typedef struct
        device->unwrapProc = unwrapproc;
 
 #define UNWRAP_PROCESS_INPUT_PROC(device, oldprocs, backupproc) \
-        backupproc = device->public.processInputProc; \
+        backupproc = device->public.realInputProc; \
        device->public.processInputProc = oldprocs->processInputProc; \
        device->public.realInputProc = oldprocs->realInputProc; \
        device->unwrapProc = oldprocs->unwrapProc;
diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
index 8ddbdba..7af3e9e 100644
--- a/xkb/xkbActions.c
+++ b/xkb/xkbActions.c
@@ -50,15 +50,14 @@ xkbUnwrapProc(DeviceIntPtr device, DeviceHandleProc proc,
                    pointer data)
 {
     xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(device);
-    ProcessInputProc tmp = device->public.processInputProc;
-    ProcessInputProc dummy; /* unused, but neede for macro */
+    ProcessInputProc backupproc;
     if(xkbPrivPtr->unwrapProc)
        xkbPrivPtr->unwrapProc = NULL;
 
-    UNWRAP_PROCESS_INPUT_PROC(device,xkbPrivPtr, dummy);
+    UNWRAP_PROCESS_INPUT_PROC(device,xkbPrivPtr, backupproc);
     proc(device,data);
     WRAP_PROCESS_INPUT_PROC(device,xkbPrivPtr,
-                           tmp,xkbUnwrapProc);
+                           backupproc,xkbUnwrapProc);
 }

3. Recompile kernel with SCHED_DEBUG enabled to stop stutter/frame loss.
Turn on...
[*]Kernel Hacking -> [*]Kernel Debugging -> [*]Collect scheduler debugging info

Recompile kernel.

Add the following to /etc/sysctl.conf

kernel.sched_features=21
kernel.sched_batch_wakeup_granularity_ns=25000000
kernel.sched_min_granularity_ns=4000000

Other Misc info.
Zen kernels with CFS profile set to gaming give slightly better frame rates than standard kernels (it just plays around with the standard CFS tunables).

Offline

#2 2008-04-20 09:36:38

scotti
Member
Registered: 2008-02-26
Posts: 41

Re: World of Warcraft - Fixes.

Probably a noob question, but how do I apply these patches exactly?

Offline

#3 2008-05-08 13:44:15

Pyronhell
Member
From: Madrid (Spain)
Registered: 2008-05-07
Posts: 17
Website

Re: World of Warcraft - Fixes.

scotti wrote:

Probably a noob question, but how do I apply these patches exactly?

patch -Np1 patch.diff

But I cant use the second patch:

==> Starting build()...
patching file include/xkbsrv.h
Hunk #1 FAILED at 263.
1 out of 1 hunk FAILED -- saving rejects to file include/xkbsrv.h.rej
patching file xkb/xkbActions.c
Hunk #1 FAILED at 50.
1 out of 1 hunk FAILED -- saving rejects to file xkb/xkbActions.c.rej

My problem

Last edited by Pyronhell (2008-05-08 13:55:50)


~ #1 ~ Kyoudai ~ Asus P5K Wifi-AP | Intel Core2Quad Q6600 (4x2400Mhz) | 4 GB DDR2 Kingston | GeForce GTX295
~ #2 ~ Ugoku ~ Intel Core2Duo 2 Ghz | 4GB Ram DDR2 | GeForce 230M

Offline

#4 2008-05-08 22:49:04

shazeal
Member
From: New Zealand
Registered: 2007-06-05
Posts: 341

Re: World of Warcraft - Fixes.

Try putting the xorg patch after all the default arch patches.

Here is a direct link to the patch I found for this https://bugs.freedesktop.org/attachment.cgi?id=15433 Incase something is stuffed up with C&P.

Top line from the PKGBUILD I used to build xorg-server for reference, its the latest one available in AUR.

# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $

Last edited by shazeal (2008-05-08 23:01:37)

Offline

#5 2008-05-09 08:02:27

JGC
Developer
Registered: 2003-12-03
Posts: 1,664

Re: World of Warcraft - Fixes.

The xorg-server patch is applied in the upstream server-1.4 branch and will make it to the arch package soon. Here's the link to the git commit, I think it applies clean to our current version of xorg-server: http://gitweb.freedesktop.org/?p=xorg/x … 31441240c5

Offline

#6 2008-05-10 19:11:15

Bestiapeluda
Member
From: Buenos Aires, Argentina
Registered: 2007-10-16
Posts: 181

Re: World of Warcraft - Fixes.

Thanks shazeal for this excellent post.
By the way, is anyone running wow with Twinview ? Im having problems to make wine behave
with two monitors. It recongnizez the two monitors as one big. Xinerama isn't an option because of frame rate dropping a lot.

PS: sorry for my poor english

Offline

Board footer

Powered by FluxBB