Bugzilla – Bug 22309
i915BindProgram: Assertion p->on_hardware == 0 failed. (Mesa 7.4/7.6)
Last modified: 2013-07-19 19:54:40 UTC
I am trying to run Free Realms on i915 hardware through wine git on Kubuntu Karmic. I tried both with the native driver (Mesa 7.4.1) as well as with mesa trunk. I also have KMS enabled, but I don't think this matters.
Reproducing is free, but requires compiling wine due to an unimplemented feature as well as signing up for the game. Instructions are at http://appdb.winehq.org/objectManager.php?sClass=version&iId=16470 .
I am not so much interested in running this game, as I am interested in why intel drivers would crash. I'm not exactly sure what you need, but I can get a +opengl wine log if you'd like. I also know that this game uses s3 texture compression, which I had to enable, but I don't know if that would be causing it.
I have also tried running it under the gallium driver, but due to lack of s3tc support for my driver, I can't really test it.
00:02.0 VGA compatible controller : Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2] (rev 03)
OK, I've tried a couple of times to get this installed, and it just doesn't seem worth it at this point.
Things may be in better shape for you if you try Mesa master, as I've fixed some bugs that would result in errors like this, but until it can install cleanly I don't think I can help directly.
Created attachment 30275 [details]
wine +d3d,+d3d_shader log (part 1)
Now it happens less often (ie whenever the loading screen doesn't show up), but happens nonetheless. When it does work there are a ton of GL_INVALID_FRAMEBUFFER_OPERATION errors (relating to glBindProgram) and the in-game rendering is mirrored (vertically and horizontally, but not the menus). From the d3d/shader log it seems to happen when binding a pixel shader, but since I don't even know what a pixel shader is, I can't be that much help. Had to break it up into 2 parts.
Evidently installing got a lot easier lately. With 1.1.31 it is almost painless (assuming a clean prefix - easier to just start with export WINEPREFIX="$HOME/.wine_frdebug")
sh winetricks firefox3 flash d3dx9 vcrun2005 vcrun2005sp1 fontsmooth-rgb
# go through a bunch of setups and eulas...
wine 'C:\Program Files\Mozilla Firefox\firefox.exe'
# go to freerealms.com, sign up & install plugin - firefox sometimes misbehaves and doesn't restart properly - kill it and just start it again
wine 'C:\Program Files\Mozilla Firefox\firefox.exe' 'www.freerealms.com'
# log in, click play now
Hope that helps.
Created attachment 30276 [details]
wine +d3d,+d3d_shader log (part 2)
Don't see what in those logs was the failure.
And yes, those instructions were what I was following when I tried to install the game. It was the "log in, play now" step that was complete failure.
The tail of the log has:
d Games\Free Realms\FreeRealms.exe: i915_fragprog.c:1144: i915BindProgram: Assertion `p->on_hardware == 0' failed.
followed by winedbg being unable to parse symbols:
fixme:dbghelp_dwarf:compute_location Unhandled attr op: 32
fixme:dbghelp_dwarf:dwarf2_fill_attr Unhandled 64bits support
fixme:dbghelp_dwarf:dwarf2_parse_variable Unsupported form for const value secs_1601_to_1970 (7)
As for reproducing - once you have an account, go to www.freerealms.com (from the wine firefox), click existing players and log in. You will see something like http://media.curse.com/CommunityServer.Components.PostAttachments/00/00/45/21/10/femcharcreation.jpg , but instead of the play now you may have a downloading spinner. If not, it will probably ask you to install the firefox addon. After that you have to wait for it to download the game (60mb) files (it's pretty slow). After that play now should pop up instead of the spinner. Hope that helps.
FWIW the same assertion error happens when trying to run Command&Conquer in wine with current Mesa 7.6 branch with a 82Q35
*** Bug 27427 has been marked as a duplicate of this bug. ***
I have managed to trigger this same assertion in a Qt-based OpenGL application, so either the bug is in the i915 driver, or Qt has the same bug as Wine.
What information can I provide?
We need instructions for how to successfully reproduce the failure.
I received this error with mixxx after upgrading to the latest Mesa.
mixxx: i915_fragprog.c:1225: i915BindProgram: Assertion `p->on_hardware == 0' failed.
A downgrade to MesaLib-6.5.2.tar.bz2 fixed it for me.
Apparently it is a bug with the intel 915/945 chipset DRI.