http://bugs.winehq.org/show_bug.cgi?id=10832
Summary: Dark Age of Camelot has page fault exception if pixelshaders are enabled Product: Wine Version: 0.9.51. Platform: PC-x86-64 URL: http://daoc.goa.com/ OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: gerry@linuxgl.ch
To use the new character models in daoc, pixelshaders need to be enabled. If they are, a page fault exception occurs as soon as the first character gets drawn (character selection screen). If I skip the character selection screen, the same pagefault occurs at a different position in the game. (I have only uploaded the logs for the selectionscreen version). Pixelshaders have never worked in this game, but they become more important with every release.
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #1 from Gerry Gunzenhauser gerry@linuxgl.ch 2007-12-19 14:31:40 --- Created an attachment (id=9701) --> (http://bugs.winehq.org/attachment.cgi?id=9701) run of wine with WINEDEBUG="+opengl,+d3d,+d3d_shader,+d3d_surface,+wine_d3d,+d3d_caps,+seh"
system:
Linux cpph 2.6.23-gentoo-r3 #1 SMP PREEMPT Tue Dec 18 15:33:13 CET 2007 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 6000+ AuthenticAMD GNU/Linux Geforce 8800GTX 4GB Ram
(CFLAGS="-march=athlon64 -O2 -pipe" ;) )
the +relay version is available from http://oceth.net/daoc_relay.log.bz2
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #2 from Vitaliy Margolen vitaliy@kievinfo.com 2007-12-19 15:08:14 --- What else have you changed in Wine's default configuration? If you can not recall, remove ~/.wine directory and reinstall your game. Also are you using beryl/compiz?
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #3 from Gerry Gunzenhauser gerry@linuxgl.ch 2007-12-19 15:22:30 --- I'm using enlightenment DR17 to run wine games but the composite & AIGLX extensions are enabled.
I tried different things with the wine config (based on clean .wine):
1. With virtualdesktop/nopixelshaders -> works 2. With virtualdesktop/pixelshaders -> doesn't work 3. Without virtualdesktop, with pixelshaders -> doesn't work 4. With virtualdesktop/pixelshaders/UseGLSL=disabled -> doesn't work (this works on my core2 laptop with ATI X1600XT Mobile card)
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #4 from Gerry Gunzenhauser gerry@linuxgl.ch 2007-12-19 15:34:01 --- Just tried it with composite extension disabled (and learned that nvidia drivers don't use aiglx...). I get the same exception.
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #5 from Austin English austinenglish@gmail.com 2008-06-04 11:31:42 --- Is this still an issue in 1.0-rc3 or newer wine?
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #6 from Gerry Gunzenhauser gerry@linuxgl.ch 2008-06-04 17:08:55 --- Created an attachment (id=13684) --> (http://bugs.winehq.org/attachment.cgi?id=13684) run of wine-1.0-rc3 with no WINEDEBUG set.
The error is still present in wine-1.0-rc3. This is just the default log output. If needed, I can do a run with more verbose settings.
http://bugs.winehq.org/show_bug.cgi?id=10832
Jordan Carroll jordan.d.carroll@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #7 from Jordan Carroll jordan.d.carroll@gmail.com 2008-07-30 19:24:33 --- *** This bug has been confirmed by popular vote. ***
http://bugs.winehq.org/show_bug.cgi?id=10832
nemesys nemesez@gmx.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nemesez@gmx.de
--- Comment #8 from nemesys nemesez@gmx.de 2009-01-24 10:05:31 --- The crash still occurs when Pixelshaders are enabled. Wine Version: 1.1.13 DAoC: 1.91
http://bugs.winehq.org/show_bug.cgi?id=10832
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gagnon.kevin@gmail.com
--- Comment #9 from Dmitry Timoshkov dmitry@codeweavers.com 2009-07-09 08:47:33 --- *** Bug 13587 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=10832
Karl Vogel karl.vogel@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |karl.vogel@gmail.com
--- Comment #10 from Karl Vogel karl.vogel@gmail.com 2009-07-11 05:53:24 --- The crash is caused by GetDeviceCaps() returning 0 for MaxVertexBlendMatrices. On a windows machine this returns 4. When wine is patched to also return 4, the game doesn't crash, but then it doesn't display the player model anymore. (not with builtin or native d3d9_?? libs).
There's some more mention about this MaxVertexBlendMatrices in Bug 8357 comment 9.
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #11 from Karl Vogel karl.vogel@gmail.com 2009-07-11 06:49:50 --- Correction to previous comment.. it works! The reason the models didnt appear before was because I was still running a hacked up wine with some stuff disabled. After using a pristine copy with just the MaxVertexBlendMatrices set to 4, it seems to work fine!
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #12 from Gerry Gunzenhauser gerry@linuxgl.ch 2009-07-12 06:08:03 --- With max_blends hardcoded to 4 it works for me too, but leads to many lines of
fixme:d3d:transform_worldex >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glMatrixMode(glMat) @ ../../../wine/dlls/wined3d/state.c / 3551
which probably is to be expected.
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #13 from Karl Vogel karl.vogel@gmail.com 2010-01-01 05:30:13 --- Created an attachment (id=25481) --> (http://bugs.winehq.org/attachment.cgi?id=25481) Patch to hardcode the max blends to 4
Attached here since people were having issues with the AppDB entry at http://appdb.winehq.org/objectManager.php?sClass=version&iId=9368#Commen... messing up the patch output.
http://bugs.winehq.org/show_bug.cgi?id=10832
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
--- Comment #14 from Austin English austinenglish@gmail.com 2011-03-29 18:40:49 CDT --- Is this still an issue in 1.3.16 or newer wine?
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #15 from Austin English austinenglish@gmail.com 2011-03-29 19:31:00 CDT --- This is your friendly reminder that there has been no bug activity for 6 months. Is this still an issue in current (1.3.16 or newer) wine?
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #16 from Gerry Gunzenhauser gerry@linuxgl.ch 2011-05-26 16:27:49 CDT --- This is still an issue in wine-1.3.20
http://bugs.winehq.org/show_bug.cgi?id=10832
Tom tmurphy@pertho.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |tmurphy@pertho.net
--- Comment #17 from Tom tmurphy@pertho.net 2012-03-01 04:59:09 CST --- I can confirm this bug is still in Wine 1.4 RC5.
The new line to patch in dlls/wined3d/directx.c line 2613 :
if (gl_info->supported[ARB_VERTEX_BLEND]) { glGetIntegerv(GL_MAX_VERTEX_UNITS_ARB, &gl_max); gl_info->limits.blends = gl_max; TRACE_(d3d_caps)("Max blends: %u.\n", gl_info->limits.blends); } + gl_info->limits.blends = 4; /* Dark Age of Camelot hack */ if (gl_info->supported[EXT_TEXTURE3D]) { glGetIntegerv(GL_MAX_3D_TEXTURE_SIZE_EXT, &gl_max); gl_info->limits.texture3d_size = gl_max; TRACE_(d3d_caps)("Max texture3D size: %d.\n", gl_info->limits.texture3d_size); }
Is it possible to make this some sort of registry key on a per-application basis? Right now, I'm running two copies of WINE. The main version for like Starcraft II and other apps, and this specially hacked one for Dark Age of Camelot.
Being able to have this as a reg key that only works for specific apps would solve this problem.
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #18 from Tom tmurphy@pertho.net 2013-12-05 04:58:17 CST --- I can confirm this is still an issue with WINE v1.6.1. I will attach a new debug output. I get "Renderer creation failed" however. I even tried the patch of hard coding gl_info->limits.blends = 4; and that doesn't seem to work now.
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #19 from Tom tmurphy@pertho.net 2013-12-05 04:59:14 CST --- Created attachment 46740 --> http://bugs.winehq.org/attachment.cgi?id=46740 Running WINE v1.6.1 with Dark Age of Camelot with WINEDEBUG="+opengl,+d3d,+d3d_shader,+d3d_surface,+wine_d3d,+d3d_caps,+seh"
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #20 from Tom tmurphy@pertho.net 2013-12-05 05:00:16 CST --- If there is any way we can have a "quirk" added for game.dll for DAoC to hard code this limit blend or some kind of fix so that it runs, that would be fantastic and save me from having to compile in a 32-bit chroot every time.
http://bugs.winehq.org/show_bug.cgi?id=10832
--- Comment #21 from Tom tmurphy@pertho.net 2013-12-05 05:48:35 CST ---
From the looks of things, the patch only works with WINE 1.4.1.
Somewhere in WINE 1.5.xx, all the code for pixel shaders changed such that the small one-line hack no longer works. WINE 1.6.1 almost certainly shares this new codebase so I've no idea where to go from here.
http://bugs.winehq.org/show_bug.cgi?id=10832
Henri Verbeet hverbeet@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE
--- Comment #22 from Henri Verbeet hverbeet@gmail.com 2013-12-05 06:20:32 CST --- (In reply to comment #21)
From the looks of things, the patch only works with WINE 1.4.1. Somewhere in WINE 1.5.xx, all the code for pixel shaders changed such that the small one-line hack no longer works. WINE 1.6.1 almost certainly shares this new codebase so I've no idea where to go from here.
In current Wine you can modify "caps->MaxVertexBlendMatrices" in wined3d_get_device_caps() instead, and it should have about the same effect as the hack attached to this bug. This bug is essentially a duplicate of bug 6955 though.
*** This bug has been marked as a duplicate of bug 6955 ***
http://bugs.winehq.org/show_bug.cgi?id=10832
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #23 from Austin English austinenglish@gmail.com 2013-12-05 21:53:46 CST --- Closing.