On Mon Dec 12 14:25:50 2022 +0000, mbriar wrote:
objdump --disassemble=thunk64_vkGetDescriptorEXT dlls/winevulkan/winevulkan.so dlls/winevulkan/winevulkan.so: file format elf64-x86-64 Disassembly of section .init: Disassembly of section .plt: Disassembly of section .text: 000000000007e4b9 <thunk64_vkGetDescriptorEXT>: 7e4b9: 55 push %rbp 7e4ba: 48 89 e5 mov %rsp,%rbp 7e4bd: 41 56 push %r14 7e4bf: 41 55 push %r13 7e4c1: 41 54 push %r12 7e4c3: 53 push %rbx 7e4c4: 48 83 ec 20 sub $0x20,%rsp 7e4c8: 48 89 7d c8 mov %rdi,-0x38(%rbp) 7e4cc: 48 8b 45 c8 mov -0x38(%rbp),%rax 7e4d0: 48 89 45 d8 mov %rax,-0x28(%rbp) 7e4d4: 48 8b 45 d8 mov -0x28(%rbp),%rax 7e4d8: 48 8b 00 mov (%rax),%rax 7e4db: 48 89 c7 mov %rax,%rdi 7e4de: e8 e7 3c fa ff call 221ca <wine_device_from_handle> 7e4e3: 4c 8b b0 e8 0a 00 00 mov 0xae8(%rax),%r14 7e4ea: 48 8b 45 d8 mov -0x28(%rbp),%rax 7e4ee: 4c 8b 68 18 mov 0x18(%rax),%r13 7e4f2: 48 8b 45 d8 mov -0x28(%rbp),%rax 7e4f6: 4c 8b 60 10 mov 0x10(%rax),%r12 7e4fa: 48 8b 45 d8 mov -0x28(%rbp),%rax 7e4fe: 48 8b 58 08 mov 0x8(%rax),%rbx 7e502: 48 8b 45 d8 mov -0x28(%rbp),%rax 7e506: 48 8b 00 mov (%rax),%rax 7e509: 48 89 c7 mov %rax,%rdi 7e50c: e8 b9 3c fa ff call 221ca <wine_device_from_handle> 7e511: 48 8b 80 90 0e 00 00 mov 0xe90(%rax),%rax 7e518: 4c 89 e9 mov %r13,%rcx 7e51b: 4c 89 e2 mov %r12,%rdx 7e51e: 48 89 de mov %rbx,%rsi 7e521: 48 89 c7 mov %rax,%rdi 7e524: 41 ff d6 call *%r14 7e527: 90 nop 7e528: 48 83 c4 20 add $0x20,%rsp 7e52c: 5b pop %rbx 7e52d: 41 5c pop %r12 7e52f: 41 5d pop %r13 7e531: 41 5e pop %r14 7e533: 5d pop %rbp 7e534: c3 ret
Well I'm afraid to say that it looks like you're building this without any optimization. You should use O2 at least when running benchmarks.