[Bug 32559] Warlock - Master of the Arcane 1.4 (Steam) crashes on startup

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Apr 29 13:45:58 CDT 2014


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                URL|                            |http://store.steampowered.c
                   |                            |om/app/203630/
          Component|-unknown                    |directx-d3d
     Ever confirmed|0                           |1

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

confirming, bought the game to check myself.

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/Steam

$ WINEDEBUG=+tid,+seh,+d3d9,+d3d,+relay,+d3d_surfacewine ./steam.exe -no-dwrite
-applaunch 203630 -windowed >>log.txt 2>&1
...
005d:trace:d3d9:d3d9_device_CreateTexture iface 0x19e0d0, width 2048, height
512, levels 11, usage 0, format 0x35545844, pool 0x1, texture 0x15a282e4,
shared_handle (nil).
005d:Call ntdll.RtlAllocateHeap(00110000,00000008,00000018) ret=7eda24fc
005d:Ret  ntdll.RtlAllocateHeap() retval=0e697b68 ret=7eda24fc
005d:Call wined3d.wined3d_mutex_lock() ret=7edb5a8c
005d:Ret  wined3d.wined3d_mutex_lock() retval=00000000 ret=7edb5a8c
005d:Call
wined3d.wined3d_texture_create(001b7c60,0431f7c8,0000000b,00000001,0e697b68,7edc7e78,0e697b78)
ret=7edb5aca
005d:Call ntdll.RtlAllocateHeap(00110000,00000008,00000148) ret=7ed20406
005d:Ret  ntdll.RtlAllocateHeap() retval=0e697b88 ret=7ed20406
005d:trace:d3d:device_resource_add device 0x1b7c60, resource 0xe697b88.
005d:Call ntdll.RtlAllocateHeap(00110000,00000008,0000002c) ret=7ed1bf16
005d:Ret  ntdll.RtlAllocateHeap() retval=0e697cd8 ret=7ed1bf16
005d:fixme:d3d:debug_d3dusage Unrecognized usage flag(s) 0x10000000
005d:trace:d3d_surface:wined3d_surface_create container 0xe697b88, width 2048,
height 512, format WINED3DFMT_DXT5, usage 0 (0x10000000), pool
WINED3D_POOL_MANAGED, multisample_type 0, multisample_quality 0, target 0xde1,
level 0, flags 0x1, surface 0x431f630.
005d:Call ntdll.RtlAllocateHeap(00110000,00000008,00000114) ret=7ed17888
005d:Ret  ntdll.RtlAllocateHeap() retval=0e697d10 ret=7ed17888
005d:Call ntdll.RtlAllocateHeap(00110000,00000008,00100013) ret=7ecae2f6
005d:Ret  ntdll.RtlAllocateHeap() retval=1b7e0020 ret=7ecae2f6
005d:trace:d3d:device_resource_add device 0x1b7c60, resource 0xe697d10.
005d:trace:d3d_surface:surface_set_container surface 0xe697d10, container
0xe697b88.
005d:trace:d3d_surface:surface_validate_location surface 0xe697d10, location
WINED3D_LOCATION_SYSMEM.
005d:trace:d3d_surface:surface_private_setup surface 0xe697d10.
005d:trace:d3d9:device_parent_surface_created device_parent 0x19e0d4,
container_parent 0xe697b68, surface 0xe697d10, parent 0x431f5a4, parent_ops
0x431f5a8. 
...
005d:Call wined3d.wined3d_surface_map(0e697d10,0431f704,00000000,00000000)
ret=7edb0b06
005d:trace:d3d_surface:wined3d_surface_map surface 0xe697d10, map_desc
0x431f704, rect (null), flags 0.
005d:trace:d3d_surface:surface_prepare_system_memory surface 0xe697d10.
005d:trace:d3d_surface:surface_load_location surface 0xe697d10, location
WINED3D_LOCATION_SYSMEM.
005d:trace:d3d_surface:surface_load_location Location already up to date.
005d:fixme:d3d:wined3d_debug_location Unrecognized location flag(s) 0xfffffc00.
005d:trace:d3d_surface:surface_invalidate_location surface 0xe697d10, location
WINED3D_LOCATION_DISCARDED | WINED3D_LOCATION_USER_MEMORY |
WINED3D_LOCATION_DIB | WINED3D_LOCATION_BUFFER | WINED3D_LOCATION_TEXTURE_RGB |
WINED3D_LOCATION_TEXTURE_SRGB | WINED3D_LOCATION_DRAWABLE |.
005d:trace:d3d_surface:wined3d_surface_get_pitch surface 0xe697d10.
005d:trace:d3d_surface:wined3d_surface_get_pitch Returning 8192.
005d:trace:d3d_surface:wined3d_surface_map Locked rect (0,0)-(2048,512).
005d:trace:d3d_surface:wined3d_surface_map Returning memory 0x1b7e0030, pitch
8192.
005d:Ret  wined3d.wined3d_surface_map() retval=00000000 ret=7edb0b06
...
005d:Call msvcr90.memcpy(1b7e0030,14507000,00002000) ret=04359c04
005d:Ret  msvcr90.memcpy() retval=1b7e0030 ret=04359c04
005d:Call msvcr90.memcpy(1b7e2030,14509000,00002000) ret=04359c04
005d:Ret  msvcr90.memcpy() retval=1b7e2030 ret=04359c04
...
005d:Call msvcr90.memcpy(1b8d8030,145ff000,00002000) ret=04359c04
005d:Ret  msvcr90.memcpy() retval=1b8d8030 ret=04359c04
005d:Call msvcr90.memcpy(1b8da030,14601000,00002000) ret=04359c04
005d:Ret  msvcr90.memcpy() retval=1b8da030 ret=04359c04
005d:Call msvcr90.memcpy(1b8dc030,14603000,00002000) ret=04359c04
005d:Ret  msvcr90.memcpy() retval=1b8dc030 ret=04359c04
005d:Call msvcr90.memcpy(1b8de030,14605000,00002000) ret=04359c04
005d:Ret  msvcr90.memcpy() retval=1b8de030 ret=04359c04
005d:Call msvcr90.memcpy(1b8e0030,14607000,00001000) ret=04359c04
005d:trace:seh:raise_exception code=c0000005 flags=0 addr=0xf7570842
ip=f7570842 tid=005d
005d:trace:seh:raise_exception  info[0]=00000001
005d:trace:seh:raise_exception  info[1]=1b8e1000
005d:trace:seh:raise_exception  eax=14607ff0 ebx=f75e0000 ecx=00000010
edx=1b8e1000 esi=00000800 edi=00003800
005d:trace:seh:raise_exception  ebp=0431f748 esp=0431f720 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00010206
005d:trace:seh:call_stack_handlers calling handler at 0x6b6bb0 code=c0000005
flags=0
--- snip ---

The surface (system) memory in question is 0x1b7e0020

--- snip ---
005d:trace:d3d_surface:wined3d_surface_create container 0xe697b88, width 2048,
height 512, format WINED3DFMT_DXT5, usage 0 (0x10000000), pool
WINED3D_POOL_MANAGED, multisample_type 0, multisample_quality 0, target 0xde1,
level 0, flags 0x1, surface 0x431f630.
005d:Call ntdll.RtlAllocateHeap(00110000,00000008,00000114) ret=7ed17888
005d:Ret  ntdll.RtlAllocateHeap() retval=0e697d10 ret=7ed17888
005d:Call ntdll.RtlAllocateHeap(00110000,00000008,00100013) ret=7ecae2f6
005d:Ret  ntdll.RtlAllocateHeap() retval=1b7e0020 ret=7ecae2f6
--- snip ---

--- snip ---
wined3d_surface_map Returning memory 0x1b7e0030, pitch 8192.
--- snip ---

This would give a range until 0x1b8e0033 (see heap alloc with 0x100013 size).

The game engine fills surface memory in a loop with memcpy() calls (0x2000 =
8192 pitch)
In the last copy call which causes the page fault a 4096 pitch is used for
whatever reason (remainder?).

Unfortunately this is a bit of pain to debug since the game even 'escapes' the
virtual desktop mode, bringing my preferred gui debugger down.

Maybe Henry or Stefan can give a hint.

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