ptitSeb / box64

Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64 Linux devices
https://box86.org
MIT License
3.73k stars 267 forks source link

vkMapMemory fails in wine vkcube.exe #1693

Open strobo5 opened 2 months ago

strobo5 commented 2 months ago

I was trying to use dxvk on this Snapdragon 7c device, but I realized I should maybe start more simple. Installed the Vulkan SDK in wine and tried vkcube; this is from BOX64_LOG=2 wine ~/.wine/drive_c/VulkanSDK/1.3.283.0/Bin/vkcube.exe:

[..]
0100|0x7fff03037080: Calling vkGetImageSubresourceLayout(0x4109BCC0, 0x41284DB0, 0x800EFBE0, ...) => return 0x4106F0D0
0100|0x7fff0301ee49: Calling vkMapMemory2KHR(0x4109BCC0, 0x10010FB20, 0x800EFB78, ...) =>0100|SIGSEGV @0x34a2de34 (???(vkcube.exe+0x22de34)) (x64pc=0x234b3/"???", rsp=0x10010fae8, stack=0xffff9c510000:0xffff9cd10000 own=(nil) fp=0x800efb78), for accessing 0x13 (code=1/prot=0), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=0x7fff0003ccd0
RSP-0x20:0x0000000000000000 RSP-0x18:0x00000000410722e0 RSP-0x10:0x0000000040f42530 RSP-0x08:0x000000004106f0d0
RSP+0x00:0x00007fff0301ee49 RSP+0x08:0x00000000412660a0 RSP+0x10:0x00000000412660f0 RSP+0x18:0x000000003b9ef082
RAX:0x00000000000234a0 RCX:0x0000000000040000 RDX:0x00000000800efb78 RBX:0x000000010010fb80 
RSP:0x000000010010fae8 RBP:0x00000000800efb78 RSI:0x000000010010fb20 RDI:0x000000004109bcc0 
 R8:0x0000000000000000  R9:0x00000000800efb78 R10:0x00007fff030b1ba0 R11:0x00000000800efb38 
R12:0x00000000412660a0 R13:0x0000000000000000 R14:0x000000004106f0d0 R15:0x0000000000000000 
ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053 
Sigactionhanlder for signal #11 called (jump to 0x7fff0003ccd0/???(0x7fff0003ccd0))
Signal 11: TRAPNO=14, ERR=4, RIP=0x234b3
0100|signal #11 function handler 0x7fff0003ccd0 called, RSP=0x7ffcf868
Run X86 (0x40e37b70), RIP=0x7fff0003ccd0, Stack=0x7ffcf778 is32bits=0
0100|0x7fff000398bf: Calling pthread_getspecific(0x3, 0x7FFCF868, 0x7FFCF868, ...) => return 0x7FFC0000
0100|0x7fff000398cf: Calling pthread_getspecific(0x3, 0x7FFCF868, 0x7FFCF868, ...) => return 0x7FFC0000
0100|0x7fff000398df: Calling pthread_getspecific(0x3, 0x7FFCF868, 0x7FFCF868, ...) => return 0x7FFC0000
0100|0x7fff000398ef: Calling pthread_getspecific(0x3, 0x7FFCF868, 0x7FFCF868, ...) => return 0x7FFC0000
0100|0x7fff000398ff: Calling pthread_getspecific(0x3, 0x7FFCF868, 0x7FFCF868, ...) => return 0x7FFC0000
0100|0x7fff0003990f: Calling pthread_getspecific(0x3, 0x7FFCF868, 0x7FFCF868, ...) => return 0x7FFC0000
0100|0x7fff0005eacc: Calling pthread_mutex_lock(0x7FFF000BD500, 0x0, 0x0, ...) => return 0x0
0100|0x7fff0005e8b4: Calling pthread_getspecific(0x3, 0x0, 0x0, ...) => return 0x7FFC0000
0100|0x7fff0005eae4: Calling pthread_mutex_unlock(0x7FFF000BD500, 0x7FFC3800, 0x0, ...) => return 0x0
0100|0x7fff0003cd6d: Calling pthread_getspecific(0x3, 0x7FFC3800, 0x0, ...) => return 0x7FFC0000
0100|0x7fff0000ec2c: Calling pthread_getspecific(0x3, 0x7FFF000889F0, 0x7FFF00075440, ...) => return 0x7FFC0000
0100|0x7fff0003ce37: Calling pthread_getspecific(0x3, 0x7FFF000889F0, 0x3, ...) => return 0x7FFC0000
End of X86 run (0x40e37b70), RIP=0x2008b, Stack=0x7ffcf780, unimp=0, emu->fork=0, emu->uc_link=(nil), emu->quit=1
Context has been changed in Sigactionhanlder, doing siglongjmp to resume emu at 0x7fff00038a8c, RSP=0x10010fae8
Setjmp DynaRun, fs=0x43
Run X86 (0x40e37b70), RIP=0x7fff00038a8c, Stack=0x10010fae8 is32bits=0
0100|0x7fff0000eaa4: Calling write(2, 0x7ffc3404"0024:err:msvcrt:_wassert (L"!status && \"vkMapMemory\"",L"../wine-9.13/dlls/winevulkan/loader_thunks.c",5555)
", 110) =>0024:err:msvcrt:_wassert (L"!status && \"vkMapMemory\"",L"../wine-9.13/dlls/winevulkan/loader_thunks.c",5555)
 return 0x6E

With BOX64_LOG=0 (edit: 0, not 1) it is just this:

Selected GPU 0: Turnip Adreno (TM) 618, type: IntegratedGpu
0024:err:msvcrt:_wassert (L"!status && \"vkMapMemory\"",L"../wine-9.13/dlls/winevulkan/loader_thunks.c",5555)
Assertion failed: !status && "vkMapMemory", file ../wine-9.13/dlls/winevulkan/loader_thunks.c, line 5555