Bug 22309

Summary: i915BindProgram: Assertion p->on_hardware == 0 failed. (Mesa 7.4/7.6)
Product: Mesa Reporter: Mike Kaplinskiy <mike.kaplinskiy>
Component: Drivers/DRI/i915Assignee: Eric Anholt <eric>
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: low CC: bero, randomaccountname
Version: unspecifiedKeywords: NEEDINFO
Hardware: x86 (IA32)   
OS: Linux (All)   
URL: http://appdb.winehq.org/objectManager.php?sClass=version&iId=16470
Whiteboard:
i915 platform: i915 features:
Attachments: wine +d3d,+d3d_shader log (part 1)
wine +d3d,+d3d_shader log (part 2)

Description Mike Kaplinskiy 2009-06-15 20:07:13 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 [0300]: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2] (rev 03)
Comment 1 Eric Anholt 2009-10-09 13:44:57 UTC
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.
Comment 2 Mike Kaplinskiy 2009-10-11 17:33:44 UTC
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")

wget http://www.kegel.com/wine/winetricks
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.
Comment 3 Mike Kaplinskiy 2009-10-11 17:34:10 UTC
Created attachment 30276 [details]
wine +d3d,+d3d_shader log (part 2)
Comment 4 Eric Anholt 2009-10-19 13:57:50 UTC
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.
Comment 5 Mike Kaplinskiy 2009-10-20 16:43:38 UTC
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.
Comment 6 Bernhard Rosenkraenzer 2009-11-03 12:47:20 UTC
FWIW the same assertion error happens when trying to run Command&Conquer in wine with current Mesa 7.6 branch with a 82Q35
Comment 7 Chris Wilson 2010-07-17 13:56:35 UTC
*** Bug 27427 has been marked as a duplicate of this bug. ***
Comment 8 Gordon Schumacher 2011-03-23 09:58:00 UTC
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?
Comment 9 Eric Anholt 2011-07-20 12:29:37 UTC
We need instructions for how to successfully reproduce the failure.
Comment 10 jon lee 2013-07-19 19:54:40 UTC
I received this error with mixxx after upgrading to the latest Mesa.
[code]
mixxx: i915_fragprog.c:1225: i915BindProgram: Assertion `p->on_hardware == 0' failed.
Aborted
[/code]

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.
Comment 11 Elizabeth 2017-10-27 21:10:41 UTC
Hello, is this still valid with latest SW? Closing otherwise. Thank you.
Comment 12 GitLab Migration User 2019-09-18 19:32:39 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/675.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.