← Back to team overview

ubuntu-x-swat team mailing list archive

[Bug 743731] [NEW] [i915] SEGV in i915_dri.so:translate_program() under wine

 

Public bug reported:

If you try to run the game Scarlet Weather Rhapsody under Wine on Ubuntu
natty, it segfaults on startup. This seems to be a bug that's fixed in
mesa's git repo. This used to work on lucid, but regressed in maverick
and is still present in natty alpha-3.

Sorry the how-to-reproduce instructions are a bit convoluted.

You can take the demo version of the game from
http://tasofro.net/touhou105/download.html (you want the 83.8MB download
link), and run under natty's wine:

LANG=ja_JP.UTF-8 winedbg  ./th105.exe
Unhandled exception: page fault on read access to 0x00000018 in 32-bit code (0x677827c7).
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
 EIP:677827c7 ESP:0563e224 EBP:0563e2dc EFLAGS:00210246(  R- --  I  Z- -P- )
 EAX:00000000 EBX:677c1ff4 ECX:00000008 EDX:677c2580
 ESI:00000008 EDI:00000000
Stack dump:
0x0563e224:  7c494908 7c7ab520 00000000 00000000
0x0563e234:  00000000 00000000 00000000 00000000
0x0563e244:  00000000 00000000 00000000 00000000
0x0563e254:  00000000 00000000 00000000 00000000
0x0563e264:  00000000 00000000 7c494908 00000003
0x0563e274:  00000005 00000001 00000002 00000000
Backtrace:
=>0 0x677827c7 in i915_dri.so (+0x267c7) (0x0563e2dc)
  1 0x67784d07 in i915_dri.so (+0x28d06) (0x0563e2ec)
  2 0x4ed391a3 _mesa_GetProgramivARB+0x322() in libdricore.so (0x0563e31c)
  3 0x7192073e in wined3d (+0x2073d) (0x0563e4ac)
[etc]

Here's a version of the backtrace with debug symbols (you'll notice that
it's for maverick's mesa 7.9 and a custom wine, but it's the same crash,
honest):

=>0 0x2002d52a translate_program+0xba(p=<is not available>)
[/home/pm215/src/mesa-7.9~git20100924/build/dri/src/mesa/drivers/dri/i915/i915_fragprog.c:356]
in i915_dri.so (0x0605e314)
  1 0x2002f9b7 i915IsProgramNative+0x46(ctx=0x7d03b198, target=0x8804, prog=0x7d128380)
[/home/pm215/src/mesa-7.9~git20100924/build/dri/src/mesa/drivers/dri/i915/i915_fragprog.c:1261]
in i915_dri.so (0x0605e344)
  2 0x20063433 _mesa_GetProgramivARB+0x352(target=0x202f82e0, pname=0x88b6, params=0x605e4a4)
[/home/pm215/src/mesa-7.9~git20100924/build/dri/src/mesa/main/arbprogram.c:844]
in i915_dri.so (0x0605e4d4)
  3 0x46d7bd2f fragment_prog_arbfp+0x175e(state_id=0x0176, stateblock=0x1410e0, context=0x4eaec38)
[/home/pm215/src/wine-for-touhou.git/dlls/wined3d/arb_program_shader.c:6196]
in wined3d (0x0605e534)
  4 0x46d9a737 context_apply_draw_state+0xb6(context=0x4eaec38, device=0x13e050)
[/home/pm215/src/wine-for-touhou.git/dlls/wined3d/context.c:2201] in wined3d
(0x0605e7c4)
  5 0x46dd6735 drawPrimitive+0x1b4(device=0x13e050, index_count=0x0004, StartIdx=0, idxSize=0, idxData=0x0(nil))
[/home/pm215/src/wine-for-touhou.git/dlls/wined3d/drawprim.c:629] in wined3d
(0x0605e814)
  6 0x46dab286 IWineD3DDeviceImpl_DrawPrimitiveUP+0xc5(iface=0x13e050, vertex_count=0x0004, pVertexStreamZeroData=0x605e898, VertexStreamZeroStride=0x0014)
[/home/pm215/src/wine-for-touhou.git/dlls/wined3d/device.c:4898] in wined3d
(0x0605e874)
  7 0x4738cd3d IDirect3DDevice9Impl_DrawPrimitiveUP+0xbc(iface=0x13b9a8, PrimitiveType=D3DPT_TRIANGLESTRIP, PrimitiveCount=0x0002, pVertexStreamZeroData=0x605e898, VertexStreamZeroStride=0x0014)
[/home/pm215/src/wine-for-touhou.git/dlls/d3d9/device.c:1951] in d3d9
(0x0605ea44)
  8 0x00401423 in th123 (+0x1422) (0x0605ea58)
  9 0x7bc72bf0 call_thread_entry_point+0x6f(entry=0x408330, arg=0x0(nil))
[/home/pm215/src/wine-for-touhou.git/dlls/ntdll/signal_i386.c:2473] in ntdll

...we crash in upload_program() because p->ctx->FragmentProgram._Current
is NULL.

I built a version of the natty mesa-7.10.1-0ubuntu3 with this patch from mesa git applied:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a99b23752b0182c64ebe1dc9c18ab821550771ff
and the game no longer segfaults on startup (it seems to hang under wine 1.2 at a later point, though -- wine 1.3 works better but for purposes of this bug report I wanted to stick to in-Ubuntu versions.)

So I guess this bug report is mostly so you can consider whether you
want to backport that fix to the mesa for natty.

** Affects: mesa (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu-X,
which is subscribed to mesa in Ubuntu.
https://bugs.launchpad.net/bugs/743731

Title:
  [i915] SEGV in i915_dri.so:translate_program() under wine



Follow ups

References