https://bugs.winehq.org/show_bug.cgi?id=40801
Bug ID: 40801 Summary: DAoC: Software vertex blending crash Product: Wine Version: 1.9.12 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3dx9 Assignee: wine-bugs@winehq.org Reporter: hpj@copyleft.no Distribution: ---
Created attachment 54728 --> https://bugs.winehq.org/attachment.cgi?id=54728 wine-1.9.12-daoc-sw-vertex-blending.patch
Out of nostalgia I decided to try to fire up Dark Age of Camelot, which I played under Cedega at one point in the 00s. I followed the instructions at https://appdb.winehq.org/objectManager.php?sClass=version&iId=9368 sans the patch, and it crashed at the character selection screen, as expected.
The linked-to patch no longer applies to Wine master (1.9.12+), and the latest patch in bug 39057 didn't improve the situation either.
I rebased the patch from the appdb entry (bug 6955) onto git master, after which the game seemed to run perfectly.
https://bugs.winehq.org/show_bug.cgi?id=40801
Hans Petter Jansson hpj@copyleft.no changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #54728|0 |1 is obsolete| |
--- Comment #1 from Hans Petter Jansson hpj@copyleft.no --- Created attachment 54729 --> https://bugs.winehq.org/attachment.cgi?id=54729 wine-1.9.12-daoc-sw-vertex-blending.patch
[ Attaching the actual patch; I used the wrong Bugzilla field for the comment the first time around ]
Software vertex blending patch that makes Dark Age of Camelot work, rebased onto 1.9.12+.
Note that I'm not familiar with the codebase, so I just did the minimum amount of work needed to get it to compile. There are a number of things still wrong with the patch (like the way it deals with wined3d_matrix), but maybe it can serve as a data point for the indexed vertex blending work.
https://bugs.winehq.org/show_bug.cgi?id=40801
--- Comment #2 from Hans Petter Jansson hpj@copyleft.no --- Clarification: The patch from bug 39057 fixes the crash when glsl=enabled. This patch fixes the crash when glsl=disabled.
https://bugs.winehq.org/show_bug.cgi?id=40801
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|directx-d3dx9 |directx-d3d
https://bugs.winehq.org/show_bug.cgi?id=40801
winetest@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |winetest@luukku.com
--- Comment #3 from winetest@luukku.com --- The bug report should contain keyword patch. Have you tried to upstream this patch via sending it to wine-patches list for review?
https://bugs.winehq.org/show_bug.cgi?id=40801
Hans Petter Jansson hpj@copyleft.no changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
--- Comment #4 from Hans Petter Jansson hpj@copyleft.no --- (In reply to winetest from comment #3)
The bug report should contain keyword patch. Have you tried to upstream this patch via sending it to wine-patches list for review?
Thanks -- I've added the keyword now. I didn't send it to the list, since it looks pretty half-baked (see FIXMEs) and I doubt it'd get accepted as-is.
https://bugs.winehq.org/show_bug.cgi?id=40801
--- Comment #5 from Austin English austinenglish@gmail.com --- (In reply to Hans Petter Jansson from comment #4)
(In reply to winetest from comment #3)
The bug report should contain keyword patch. Have you tried to upstream this patch via sending it to wine-patches list for review?
Thanks -- I've added the keyword now. I didn't send it to the list, since it looks pretty half-baked (see FIXMEs) and I doubt it'd get accepted as-is.
You can send to wine-devel instead of wine-patches for comments and help with it.
https://bugs.winehq.org/show_bug.cgi?id=40801
--- Comment #6 from winetest@luukku.com --- patching file dlls/wined3d/directx.c Hunk #1 succeeded at 5892 (offset 471 lines). patching file dlls/wined3d/drawprim.c Hunk #1 succeeded at 36 with fuzz 1 (offset 1 line). Hunk #2 FAILED at 234. Hunk #3 succeeded at 351 (offset -1 lines). Hunk #4 succeeded at 423 with fuzz 2 (offset -1 lines). Hunk #5 succeeded at 696 (offset 30 lines). Hunk #6 FAILED at 687. 2 out of 6 hunks FAILED -- saving rejects to file dlls/wined3d/drawprim.c.rej patching file dlls/wined3d/state.c Hunk #1 succeeded at 3684 (offset 11 lines). Hunk #2 succeeded at 3813 (offset 17 lines). Hunk #3 succeeded at 3943 (offset 17 lines). patching file dlls/wined3d/vertexdeclaration.c Hunk #1 succeeded at 119 (offset 8 lines). patching file dlls/wined3d/wined3d_private.h Hunk #1 succeeded at 2723 with fuzz 1 (offset 413 lines).
wine 2.8-git.
https://bugs.winehq.org/show_bug.cgi?id=40801
TOM l12436@yahoo.com.tw changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |l12436@yahoo.com.tw
--- Comment #7 from TOM l12436@yahoo.com.tw --- Created attachment 59518 --> https://bugs.winehq.org/attachment.cgi?id=59518 Patch for Software vertex blending
This patch is from original software vertex blending since 1.9.12. I upgrade it every time wine release.
https://bugs.winehq.org/show_bug.cgi?id=40801
TOM l12436@yahoo.com.tw changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #59518|0 |1 is obsolete| |
--- Comment #8 from TOM l12436@yahoo.com.tw --- Created attachment 59519 --> https://bugs.winehq.org/attachment.cgi?id=59519 Patch for Software vertex blending
https://bugs.winehq.org/show_bug.cgi?id=40801
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
--- Comment #9 from Fabian Maurer dark.shadow4@web.de --- When is this software vertex blending used? Only when glsl=disabled?
https://bugs.winehq.org/show_bug.cgi?id=40801
--- Comment #10 from Hans Petter Jansson hpj@copyleft.no --- (In reply to Fabian Maurer from comment #9)
When is this software vertex blending used? Only when glsl=disabled?
It's been a while, but I think so. I don't remember why I was running the game in question (DAoC) with glsl=disabled, but I think it was necessary to get it to work.
https://bugs.winehq.org/show_bug.cgi?id=40801
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #11 from joaopa jeremielapuree@yahoo.fr --- Still a bug with wine-4.19?
https://bugs.winehq.org/show_bug.cgi?id=40801
Paul Gofman gofmanp@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gofmanp@gmail.com
--- Comment #12 from Paul Gofman gofmanp@gmail.com --- I tested the game and could not reproduce the problem. Worked fine for me out of the box with current git Wine (no dll overrides, default clean Wine prefix). I was able to create a character and start the game and walk around initial area (tutorial). Do I need to do anything specific or use specific settings to reproduce the bug? Comments here and in App db suggest that it should have crashed right upon starting the game after selecting character.
Nothing has changed upstream in regards to vertex blending since this bug was open. So if the patch referenced above was ever helping, then it is not much likely that something fixed that in Wine, maybe something has changed in game client or the bug was related to some specific settings.
If I disable GLSL as suggested above for some reason unknown to me (set MaxVersionGL to 0x10000 and UseGLSL to 'disabled'), the game doesn't display a character on character select screen (only his weapon) and crashes after starting a game after displaying a lot of visual artifacts in a few frames.
If this bug was about problems with GLSL disabled, this is not really supported, as the message about keeping all the pieces suggests in Wine output. A lot of things can go wrong on that path these days.
https://bugs.winehq.org/show_bug.cgi?id=40801
--- Comment #13 from Hans Petter Jansson hpj@copyleft.no --- (In reply to Paul Gofman from comment #12)
I tested the game and could not reproduce the problem. Worked fine for me out of the box with current git Wine (no dll overrides, default clean Wine prefix). I was able to create a character and start the game and walk around initial area (tutorial). Do I need to do anything specific or use specific settings to reproduce the bug? Comments here and in App db suggest that it should have crashed right upon starting the game after selecting character.
Nothing has changed upstream in regards to vertex blending since this bug was open. So if the patch referenced above was ever helping, then it is not much likely that something fixed that in Wine, maybe something has changed in game client or the bug was related to some specific settings.
If I disable GLSL as suggested above for some reason unknown to me (set MaxVersionGL to 0x10000 and UseGLSL to 'disabled'), the game doesn't display a character on character select screen (only his weapon) and crashes after starting a game after displaying a lot of visual artifacts in a few frames.
If this bug was about problems with GLSL disabled, this is not really supported, as the message about keeping all the pieces suggests in Wine output. A lot of things can go wrong on that path these days.
See comment#2. More than three years have passed, so most likely there have been changes either in Wine or the (surprisingly actively maintained) game client that make the GLSL path work, or the test environment is different. The patch posted here has also been rebased since.
If software vertex blending is deprecated now, and there are no well substantiated objections, I'm fine with wontfixing this.
https://bugs.winehq.org/show_bug.cgi?id=40801
--- Comment #14 from Paul Gofman gofmanp@gmail.com --- Indeed, Comment #2 suggests that previously game crashed with GLSL also and required indexed vertex blending support (as the corresponding patch fixed it.
So it seems to me correct resolution may be ABANDONED (as unless I missed something obvious this is not reproducible in the latest game anymore and the old client probably cannot be tested), or a DUPLICATE of bug #39057. Why would it be WONTFIX? It is also unlikely FIXED, as nothing changed in upstream Wine in regards to indexed vertex blending.
https://bugs.winehq.org/show_bug.cgi?id=40801
--- Comment #15 from Hans Petter Jansson hpj@copyleft.no --- (In reply to Paul Gofman from comment #14)
Indeed, Comment #2 suggests that previously game crashed with GLSL also and required indexed vertex blending support (as the corresponding patch fixed it.
So it seems to me correct resolution may be ABANDONED (as unless I missed something obvious this is not reproducible in the latest game anymore and the old client probably cannot be tested), or a DUPLICATE of bug #39057. Why would it be WONTFIX? It is also unlikely FIXED, as nothing changed in upstream Wine in regards to indexed vertex blending.
I assumed WONTFIX would be appropriate since this bug is about software vertex blending, and your testing seems to indicate it's still broken (final paragraphs of comment #12).
As far as DAoC is concerned though, I just retested with openSUSE Tumbleweed distro-provided Wine, and I agree this game currently works fine out of the box with GLSL enabled. The packages are based on Wine 4.19 patched with Gallium Nine support (wine-d3d9-helper.patch and wine-d3d9.patch) and staging.
I'm happy; how you'd like to deal with this report is up to you :)
Thanks for your work on Wine!
https://bugs.winehq.org/show_bug.cgi?id=40801
--- Comment #16 from Paul Gofman gofmanp@gmail.com ---
I assumed WONTFIX would be appropriate since this bug is about software vertex blending, and your testing seems to indicate it's still broken (final paragraphs of comment #12).
But why WONTFIX? There is an open (staged) bug #39057 for that. and I hope it will be fixed in mainstream Wine some day. It is currently fixed in Wine Staging in GLSL backend.
As far as DAoC is concerned though, I just retested with openSUSE Tumbleweed distro-provided Wine, and I agree this game currently works fine out of the box with GLSL enabled. The packages are based on Wine 4.19 patched with Gallium Nine support (wine-d3d9-helper.patch and wine-d3d9.patch) and staging.
This is not a valid test (unless Nine d3d9 is actually disabled and you are using Wine d3d9), as Nine d3d9 implementation is completely independent of Wine, and whether it works in Nine or not, that does not belong to this bugzilla. I think all the comments above refer to the Wine d3d9 implementation, as Nine has absolutely nothing to do with Wine d3d registry options like disabling GLSL.
https://bugs.winehq.org/show_bug.cgi?id=40801
--- Comment #17 from Hans Petter Jansson hpj@copyleft.no --- You're right, I was testing the plain wine packages without Nine. With GLSL enabled, both plain and staging versions run this game ok now. With GLSL disabled, both versions immediately crash when client loading is finished, and the patch posted here makes no difference.
If the bug is to be resolved, I think WONTFIX would be fine (i.e. because running with GLSL disabled is unsupported). ABANDONED could apply too if you think it's unlikely to be fixed (I'm not familiar enough with the Wine code base to pursue this).
Or just leave it open if having open bugs around doesn't bother you :)
https://bugs.winehq.org/show_bug.cgi?id=40801
--- Comment #18 from Paul Gofman gofmanp@gmail.com --- (In reply to Hans Petter Jansson from comment #17)
If the bug is to be resolved, I think WONTFIX would be fine (i.e. because running with GLSL disabled is unsupported).
I am not a Bugzilla admin so it is really none of my concern. But I can provide you with a long list of options which are not meant to be universally usable (as well as disabling GLSL) and will break things in this game and in thousands of others. E. g., you can set 'OffscreenRenderingMode' to 'backbuffer', or MaxShaderModelPS to 0. You also have endless possibilities of breaking things using environment variables or Winecfg, not mentioning host setup. Do you think it will make sense to create a 'WONTFIX' or open bug report for each game and each option?
Please also note that original bug report is about valid but completely different issue (see Comment #14).
https://bugs.winehq.org/show_bug.cgi?id=40801
--- Comment #19 from Hans Petter Jansson hpj@copyleft.no --- (In reply to Paul Gofman from comment #18)
(In reply to Hans Petter Jansson from comment #17)
If the bug is to be resolved, I think WONTFIX would be fine (i.e. because running with GLSL disabled is unsupported).
I am not a Bugzilla admin so it is really none of my concern. But I can provide you with a long list of options which are not meant to be universally usable (as well as disabling GLSL) and will break things in this game and in thousands of others. E. g., you can set 'OffscreenRenderingMode' to 'backbuffer', or MaxShaderModelPS to 0. You also have endless possibilities of breaking things using environment variables or Winecfg, not mentioning host setup. Do you think it will make sense to create a 'WONTFIX' or open bug report for each game and each option?
Probably not ¯_(ツ)_/¯
https://bugs.winehq.org/show_bug.cgi?id=40801
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID CC| |o.dierick@piezo-forte.be Status|UNCONFIRMED |RESOLVED
--- Comment #20 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- (In reply to Hans Petter Jansson from comment #2)
Clarification: The patch from bug 39057 fixes the crash when glsl=enabled. This patch fixes the crash when glsl=disabled.
Hello,
The game had an issue with glsl at some point and that's why it needed an alternative to patch from bug 39057 that worked with glsl=disabled.
glsl=disabled is unsupported and bugs about that are invalid.
Now that the game has no longer issues with glsl it can benefit from the other bug and this one can safely be marked invalid.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=40801
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #21 from Austin English austinenglish@gmail.com --- Closing.