Skip to content

[arm64ec/proton] dxgi.dll null dereference on start #5504

@valpackett

Description

@valpackett

Testing the Steam Proton arm runtime, at least two games that work fine in the fully-emulating-everything setup (System Shock Remake and Severed Steel) fail to load DXGI (argh, how do I symbolicate this?..):

D 140 Load module OPENGL32.dll (opengl32.dll-9feeefc257d60bb7): 7BD80000
1885.573:013c:0140:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\OPENGL32.dll" at 000000007BD80000: builtin
D 140 Load module MSVCP140.dll (msvcp140.dll-fd94b6e92aab2a1b): 6FFFF9160000
D 140 Load module VCRUNTIME140.dll (vcruntime140.dll-3d83ff46474ef1f3): 6FFFF9130000
1885.577:013c:0140:trace:loaddll:build_module Loaded L"S:\\common\\SeveredSteel\\ThankYouVeryCool\\Binaries\\Win64\\VCRUNTIME140.dll" at 00006FFFF9130000: native
1885.577:013c:0140:trace:loaddll:build_module Loaded L"S:\\common\\SeveredSteel\\ThankYouVeryCool\\Binaries\\Win64\\MSVCP140.dll" at 00006FFFF9160000: native
1885.595:013c:0140:trace:seh:RtlInitializeExtendedContext2 context 000000002116ED60, context_flags 0x10000b, context_ex 000000002116ED18, compaction_mask ffffffffffffffff.
1885.595:013c:0140:trace:seh:RtlInitializeExtendedContext2 context 000000002116EEC0, context_flags 0x10000b, context_ex 000000002116EE78, compaction_mask ffffffffffffffff.
D 140 Exception: Code: 80000002 Address: 7FFFFE758684
D 140 Handled unaligned atomic: new pc: 7FFFFE758680
1885.595:013c:0140:trace:seh:RtlInitializeExtendedContext2 context 000000002116EEC0, context_flags 0x10000b, context_ex 000000002116EE78, compaction_mask ffffffffffffffff.
D 140 Exception: Code: 80000002 Address: 7FFFFE75ACA4
D 140 Handled unaligned atomic: new pc: 7FFFFE75ACA0
1886.743:013c:0140:trace:seh:RtlInitializeExtendedContext2 context 0000000000B91DD0, context_flags 0x10000b, context_ex 0000000000B91D88, compaction_mask ffffffffffffffff.
D 140 Exception: Code: C0000005 Address: 6FFFFA4B0000
D 140 Passing through exception
1886.743:013c:0140:warn:seh:dispatch_exception backtrace: --- Exception 0xc0000005.
1886.743:013c:0140:trace:seh:dispatch_exception code=c0000005 (EXCEPTION_ACCESS_VIOLATION) flags=0 addr=00006FFFFA4B0000
1886.743:013c:0140:trace:seh:dispatch_exception  info[0]=0000000000000008
1886.743:013c:0140:trace:seh:dispatch_exception  info[1]=00006FFFFA4B0000
1886.743:013c:0140:trace:seh:dispatch_exception rip=00006ffffa4b0000 rsp=0000000000b92f10 rbp=0000000000b92f40 eflags=00000282
1886.743:013c:0140:trace:seh:dispatch_exception rax=0000000000000024 rbx=00006ffffa757000 rcx=0000000000b9bb11 rdx=00006ffffa75ef82
1886.743:013c:0140:trace:seh:dispatch_exception rsi=0000000000b9bb11 rdi=0000000000b9ee00  r8=0000000000000012  r9=eb6044ff746f4660
1886.743:013c:0140:trace:seh:dispatch_exception r10=0000000000b9ebd0 r11=8101010101010100 r12=0000000000b9bb10 r13=00006ffffa75ef95
1886.743:013c:0140:trace:seh:dispatch_exception r14=0000000000000012 r15=00006ffffa75ef82 mxcsr=00001fa0 cs=0033 ss=002b
1886.743:013c:0140:warn:seh:virtual_unwind backtrace: 00006FFFFA4B0000: L"dxgi.dll" + 0000000000000000.
1886.743:013c:0140:trace:unwind:RtlVirtualUnwind2 type 1 base 0 rip 6ffffa4b0000 rva 6ffffa4b0000 rsp b92f10
1886.743:013c:0140:warn:seh:virtual_unwind backtrace: 00006FFFFA7462A8: L"dxgi.dll" + 00000000002962A8.
1886.743:013c:0140:trace:unwind:RtlVirtualUnwind2_arm64 type 1 base 6ffffa4b0000 pc 6ffffa7462a8 rva 2962a8 sp b92f18
1886.743:013c:0140:trace:unwind:unwind_full_data function 6ffffa7462a8-6ffffa7462d0: len=0xa ver=0 X=0 E=1 epilogs=2 codes=8
1886.743:013c:0140:trace:unwind:RtlVirtualUnwind2_arm64 ret: pc=6ffffa4f57d8 lr=6ffffa4f57d8 sp=b92f18 handler=0000000000000000
1886.743:013c:0140:warn:seh:virtual_unwind backtrace: 00006FFFFA4F57D4: L"dxgi.dll" + 00000000000457D4.
[…]
1886.743:013c:0140:err:module:loader_init "dxgi.dll" failed to initialize, aborting
1886.743:013c:0140:err:module:loader_init Initializing dlls for L"S:\\common\\SeveredSteel\\ThankYouVeryCool\\Binaries\\Win64\\ThankYouVeryCool-Win64-Shipping.exe" failed, status c0000005

Could it be the sad "Needs __attribute__((hybrid_patchable)) dxgi functions" thing like there?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions