Running Vanilla WoW in both Wine 1.4 and through PlayOnLinux which is using Wine 1.2.1 and performance is completely unacceptable. 3D is working fine in native Linux titles such as Bastion.
Here's what things look like with OpenGL (there's a lot of graphical corruption in terms of objects flickering, also there appears to be a log or something wedged in my character, this screenshot doesn't do a good job of showing it off):
And here's things with DirectX 9:
I have the Ubuntu provided ATI drivers on a HD6950, and I don't know why things are so bad. The game runs at vsync at 1920x1080 at max settings with AA in 3D on Windows without a problem. Oh, and 64-bit if that changes anything.
ruscour@ruscour-desktop:~$ glxgears
6996 frames in 5.0 seconds = 1399.169 FPS
7548 frames in 5.0 seconds = 1509.521 FPS
ruscour@ruscour-desktop:~$ fgl_glxgears
Using GLX_SGIX_pbuffer
2875 frames in 5.0 seconds = 575.000 FPS
2906 frames in 5.0 seconds = 581.200 FPS
That's in Unity 3D, haven't messed too much with anything so compositing probably enabled if it's on by default.
Various diagnostics:
ruscour@ruscour-desktop:~$ lspci -v
01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Cayman PRO [Radeon HD 6950] (prog-if 00 [VGA controller])
Subsystem: PC Partner Limited Device 186b
Flags: bus master, fast devsel, latency 0, IRQ 54
Memory at d0000000 (64-bit, prefetchable) [size=256M]
Memory at fe8e0000 (64-bit, non-prefetchable) [size=128K]
I/O ports at c000 [size=256]
Expansion ROM at fe8c0000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: fglrx_pci
Kernel modules: fglrx, radeon
ruscour@ruscour-desktop:~$ fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: AMD Radeon HD 6900 Series
OpenGL version string: 4.2.11627 Compatibility Profile Context
ruscour@ruscour-desktop:~$ xvinfo
X-Video Extension version 2.2
screen #0
Adaptor #0: "AMD Radeon AVIVO Video"
number of ports: 4
port base: 143
operations supported: PutImage
supported visuals:
depth 24, visualID 0x23
depth 24, visualID 0x24
depth 24, visualID 0x25
depth 24, visualID 0x26
depth 24, visualID 0x27
depth 24, visualID 0x28
depth 24, visualID 0x29
depth 24, visualID 0x2a
depth 24, visualID 0x2b
depth 24, visualID 0x2c
depth 24, visualID 0x2d
depth 24, visualID 0x2e
depth 24, visualID 0x2f
depth 24, visualID 0x30
depth 24, visualID 0x31
depth 24, visualID 0x32
depth 24, visualID 0x33
depth 24, visualID 0x34
depth 24, visualID 0x35
depth 24, visualID 0x36
depth 24, visualID 0x37
depth 24, visualID 0x38
depth 24, visualID 0x39
depth 24, visualID 0x3a
depth 24, visualID 0x3b
depth 24, visualID 0x3c
depth 24, visualID 0x3d
depth 24, visualID 0x3e
depth 24, visualID 0x3f
depth 24, visualID 0x40
depth 24, visualID 0x41
depth 24, visualID 0x42
depth 24, visualID 0x43
depth 24, visualID 0x44
depth 24, visualID 0x45
depth 24, visualID 0x46
depth 24, visualID 0x47
depth 24, visualID 0x48
depth 24, visualID 0x49
depth 24, visualID 0x4a
depth 24, visualID 0x4b
depth 24, visualID 0x4c
depth 24, visualID 0x4d
depth 24, visualID 0x4e
depth 24, visualID 0x4f
depth 24, visualID 0x50
depth 24, visualID 0x51
depth 24, visualID 0x52
depth 24, visualID 0x53
depth 24, visualID 0x54
depth 24, visualID 0x55
depth 24, visualID 0x56
depth 24, visualID 0x57
depth 24, visualID 0x58
depth 24, visualID 0x59
depth 24, visualID 0x5a
depth 24, visualID 0x5b
depth 24, visualID 0x5c
depth 24, visualID 0x5d
depth 24, visualID 0x5e
depth 24, visualID 0x5f
depth 24, visualID 0x60
depth 24, visualID 0x61
depth 24, visualID 0x62
depth 24, visualID 0x63
depth 24, visualID 0x64
depth 24, visualID 0x65
depth 24, visualID 0x66
depth 24, visualID 0x67
depth 24, visualID 0x68
depth 24, visualID 0x69
depth 24, visualID 0x6a
depth 24, visualID 0x6b
depth 24, visualID 0x6c
depth 24, visualID 0x6d
depth 24, visualID 0x6e
depth 24, visualID 0x6f
depth 24, visualID 0x70
depth 24, visualID 0x71
depth 24, visualID 0x72
number of attributes: 10
"XV_SET_DEFAULTS" (range 0 to 1)
client settable attribute
"XV_DOUBLE_BUFFER" (range 0 to 1)
client settable attribute
client gettable attribute (current value is 1)
"XV_BRIGHTNESS" (range -1000 to 1000)
client settable attribute
client gettable attribute (current value is 0)
"XV_CONTRAST" (range -1000 to 1000)
client settable attribute
client gettable attribute (current value is 0)
"XV_SATURATION" (range -1000 to 1000)
client settable attribute
client gettable attribute (current value is 0)
"XV_COLOR" (range -1000 to 1000)
client settable attribute
client gettable attribute (current value is 0)
"XV_HUE" (range -1000 to 1000)
client settable attribute
client gettable attribute (current value is 0)
"XV_RED_INTENSITY" (range -1000 to 1000)
client settable attribute
client gettable attribute (current value is 0)
"XV_GREEN_INTENSITY" (range -1000 to 1000)
client settable attribute
client gettable attribute (current value is 0)
"XV_BLUE_INTENSITY" (range -1000 to 1000)
client settable attribute
client gettable attribute (current value is 0)
maximum XvImage size: 4096 x 4096
Number of image formats: 4
id: 0x32315659 (YV12)
guid: 59563132-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x30323449 (I420)
guid: 49343230-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x32595559 (YUY2)
guid: 59555932-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x59565955 (UYVY)
guid: 55595659-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
glxinfo | grep rendering returns Yes.
If anything else is needed to help me out, just ask and I'll post it. I'm sure I'm missing something obvious, like there's some 32-bit GL library I don't have or something like that, but I'm stuck so hopefully someone can give me a hand.