[Bug 36449] Death to Spies: Moment of Truth crashes on mission start (incorrect ID3DXSkinInfo::ConvertToIndexedBlendedMesh stub signature)

wine-bugs at winehq.org wine-bugs at winehq.org
Mon May 25 09:37:11 CDT 2015


https://bugs.winehq.org/show_bug.cgi?id=36449

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Fixed by SHA1|                            |27c72ae986fbc6f168e2001b43c
                   |                            |f80a131de03cd
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED
            Summary|Death to Spies: Moment of   |Death to Spies: Moment of
                   |Truth crashes on mission    |Truth crashes on mission
                   |start (needs                |start (incorrect
                   |ID3DXSkinInfo::ConvertToInd |ID3DXSkinInfo::ConvertToInd
                   |exedBlendedMesh             |exedBlendedMesh stub
                   |implementation)             |signature)

--- Comment #4 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

indeed it moves further (but quickly crashes again).

https://source.winehq.org/git/wine.git/commitdiff/27c72ae986fbc6f168e2001b43cf80a131de03cd

Thanks Christian

Fixed stub:

--- snip ---
...
0045:fixme:d3dx:d3dx9_skin_info_ConvertToIndexedBlendedMesh iface 0x59bc78d8,
mesh_in 0x59bff860, options 0, palette_size 69, adjacency_in 0x5acafe0,
adjacency_out 0x5ad6570, face_remap (nil), vertex_remap (nil), max_face_infl
0x32f1c0, num_bone_combinations 0x32f194, bone_combination_table 0x32f1a0,
mesh_out 0x32f164 stub!
0045:Call ntdll.RtlFreeHeap(01060000,00000000,05acafd0) ret=007bf3c1
0045:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=007bf3c1
0045:Call ntdll.RtlFreeHeap(01060000,00000000,05ad6560) ret=007bf3c1
0045:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=007bf3c1
0045:trace:d3dx:d3dx9_skin_info_Release 0x59bc78d8 decreasing refcount to 0.
0045:Call ntdll.RtlFreeHeap(00110000,00000000,00000000) ret=7e1a5fdf
0045:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=7e1a5fdf 
...
--- snip ---

The crash from comment #3 is a different bug.

--- snip ---
...
0045:Call
d3dx9_36.D3DXCompileShader(00db66c0,000007da,00000000,0083e5e8,007f61f8
"PS",0032f988 "ps_2_b",00000000,0032f96c,0032f97c,00000000) ret=00430670
0045:trace:d3dx:D3DXCompileShader data
"//--------------------------------------------------------------------------\r\n//
Depth of field
effect\r\n//--------------------------------------------------------------------------\r\n\r\n//
<version:ps_2_b>\r\n\r\nsampler tSource    : register(s0);\r\nsampler
tSourceLow : register(s1);\r\n\r\n#d"..., length 2010, defines (nil), include
0x83e5e8, function "PS", profile "ps_2_b", flags 0, shader 0x32f96c, error_msgs
0x32f97c, constant_table (nil). 
...
0045:Call msvcrt.getenv(0090e168 "D3DCOMPILER_FORCE_PREFER_FLOW") ret=009a8356
0045:Ret  msvcrt.getenv() retval=00000000 ret=009a8356
...
0045:Call msvcrt._vsnprintf(0032ae44,00000f9b,00915468 "global variables are
implicitly constant, enable compatibility mode to allow modification",0032be08)
ret=00a95726
0045:Ret  msvcrt._vsnprintf() retval=00000059 ret=00a95726
...
0045:Call user32.MessageBoxA(00000000,0106b158 "Failed to compile
(shaders\\ps\\DOF_2b.psh) -> line C:\\Program Files\\Aspyr\\Death to Spies -
Moment of Truth Demo\\Shader at 0x00DB66C0(21,16): error X3025: global variables
are implicitly constant, enable compatibility mode to allow
modification\n",00844e30 "Error:",00001030) ret=00405f86 
...
0045:Call ntdll.RtlFreeHeap(01060000,00000000,031e8450) ret=007bf3c1
0045:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=007bf3c1
0045:trace:seh:raise_exception code=c0000005 flags=0 addr=0x4d1ee3 ip=004d1ee3
tid=0045
0045:trace:seh:raise_exception  info[0]=00000000
0045:trace:seh:raise_exception  info[1]=deadbeef
0045:trace:seh:raise_exception  eax=deadbeef ebx=00000010 ecx=03146720
edx=0324f1c8 esi=031e8418 edi=00000000
0045:trace:seh:raise_exception  ebp=0032f930 esp=0032f8d4 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00010202
0045:trace:seh:call_stack_handlers calling handler at 0x7c9140 code=c0000005
flags=0
0045:trace:seh:call_stack_handlers handler at 0x7c9140 returned 1
0045:trace:seh:call_stack_handlers calling handler at 0x7c9140 code=c0000005
flags=0 
...
Unhandled exception: page fault on read access to 0xdeadbeef in 32-bit code
(0x004d1ee3).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:004d1ee3 ESP:0032f8d4 EBP:0032f930 EFLAGS:00010202(  R- --  I   - - - )
 EAX:deadbeef EBX:00000010 ECX:03146720 EDX:0324f1c8
 ESI:031e8418 EDI:00000000
...
Backtrace:
=>0 0x004d1ee3 in truth (+0xd1ee3) (0x0032f930)
  1 0x007bfe92 in truth (+0x3bfe91) (0x00db66c0)
  2 0x00d30128 (0x00d30088)
  3 0x00db66c0 (0x00d30098)
  4 0x00d30088 (0x00d300a8)
  5 0x00d30098 (0x00d300b8)
  6 0x00d300a8 (0x00d300c8) 
...
0x004d1ee3: movl    0x0(%eax),%edx
Modules:
Module    Address            Debug info    Name (187 modules)
PE      400000-  8c9000    Export          truth
PE      8d0000-  ad7000    Deferred        d3dcompiler_43
PE      bf0000-  d29000    Deferred        vorbis
PE    10000000-10022000    Deferred        vfs20 
...
Threads:
process  tid      prio (all id:s are in hex) 
...
00000044 (D) C:\Program Files\Aspyr\Death to Spies - Moment of Truth
Demo\Truth.exe
    0000003e    0
    0000002d    0
    0000002c   15
    00000047    0
    00000046    0
    00000045    0 <== 
--- snip ---

Another tidbit, albeit unrelated to the issue here:

The game needs DXTn software de/encoding support.

I run one of my machines with Fedora 22 x64 and Mesa 10.5.x/Nouveau (no NVIDIA
blob):

--- snip ---
...
0027:trace:d3dx:D3DXCreateTextureFromFileInMemoryEx Texture created correctly.
Now loading the texture data into it. 
...
0027:trace:d3dx:D3DXLoadSurfaceFromMemory (0x1f281c8, (nil), (null), 0xdb6778,
0x35545844, 2048, (nil), (0,0)-(512,512), 0x3, 0x00000000) 
...
0027:fixme:d3dx:D3DXLoadSurfaceFromMemory Format conversion missing 0x35545844
-> 0x1c
0027:fixme:d3dx:D3DXCreateTextureFromFileInMemoryEx Texture loading failed.
...
0027:Ret  d3dx9_36.D3DXCreateTextureFromFileInMemoryEx() retval=80004001
ret=004486b7
0027:Call KERNEL32.GetLastError() ret=007c9747
0027:Ret  KERNEL32.GetLastError() retval=000036b7 ret=007c9747
0027:trace:seh:raise_exception code=c0000005 flags=0 addr=0x4486d5 ip=004486d5
tid=0027
0027:trace:seh:raise_exception  info[0]=00000000
0027:trace:seh:raise_exception  info[1]=00000000
0027:trace:seh:raise_exception  eax=00000000 ebx=00000001 ecx=00844e18
edx=00408470 esi=00db66f8 edi=0187b720
0027:trace:seh:raise_exception  ebp=ffffffff esp=0032f978 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00010216
0027:trace:seh:call_stack_handlers calling handler at 0x7c9140 code=c0000005
flags=0 
--- snip ---

Using the Wine-Staging wined3d-DXTn patchset fixes the problem:

https://github.com/wine-compholio/wine-staging/tree/master/patches/wined3d-DXTn

$ wine --version
wine-1.7.43-145-g66480ac

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list