Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Halo Infinite won't launch (2023-05-21) #32

Closed
MadLittleMods opened this issue May 21, 2023 · 5 comments
Closed

Halo Infinite won't launch (2023-05-21) #32

MadLittleMods opened this issue May 21, 2023 · 5 comments

Comments

@MadLittleMods
Copy link
Owner

MadLittleMods commented May 21, 2023

When first building my Linux PC, I was surprised to see that Halo Infinite just worked out of the box on Manjaro. I had plenty of issues with my GPU not giving me performance but when my GPU was chooching, the game played great.

Last successful play through

I last played Halo Infinite successfully on 2023-05-14 which according to https://steamdb.info/app/1240440/patchnotes/, must have meant I had build 10989515. I had never messed with specifying a Proton version before and I think it just uses proton-experimental according to https://steamdb.info/app/1240440/ which aligns with what I had installed and probably meant build 11164623 (https://steamdb.info/app/1493710/patchnotes/)

Current broken details

  • GPU: ASRock AMD Radeon™ RX 7900 XTX Taichi 24GB
  • Driver/LLVM version: Mesa 23.0.3-1/15.0.7-2
  • Kernel version: Linux 6.1.29-1 (also tried Linux 6.3.3-1)
  • Proton: 1684333320 experimental-8.0-20230517 (steam build ID 11254524 (2023-05-17))
    • Also tried Properties -> Compatibility -> Force the use of a specific Steam Play compatible tool with Proton 8.0 and Proton Hotfix
  • Halo Infinite build: 10989515 (2023-05-10)

Reproduction steps:

  1. Use Manjaro 22.1.2 Linux
  2. Launch the game from Steam
  3. Game prepares to launch, syncs but never actually launches any window and goes back to the stopped state in Steam (assumed crash)

Proton crash logs: steam-1240440.log (see "How to get Proton logs" below)

Lots of these kinds of exceptions show up in the logs:

39976.919:0064:007c:trace:seh:dispatch_exception code=6ba flags=0 addr=000000007B04D713 ip=7b04d713
39976.919:0064:007c:warn:seh:dispatch_exception unknown exception (code=6ba) raised
39976.919:0064:007c:trace:seh:dispatch_exception  rax=000000007b04d6b0 rbx=000000000122f4a8 rcx=000000000122f1b0 rdx=0000000000000000
39976.919:0064:007c:trace:seh:dispatch_exception  rsi=00000000000000c8 rdi=00000000008f3e40 rbp=000000000122f250 rsp=000000000122f190
39976.919:0064:007c:trace:seh:dispatch_exception   r8=0000000000000000  r9=0000000000000000 r10=00000000008f5480 r11=0000000000000014
39976.919:0064:007c:trace:seh:dispatch_exception  r12=000000000122f4a8 r13=0000000000f634e0 r14=0000000000f634e0 r15=00000000000000b4
1173.266:0134:0138:warn:seh:dispatch_exception backtrace: --- Exception 0xc0000005.
1173.266:0134:0138:trace:seh:dispatch_exception code=c0000005 flags=0 addr=0000000141178308 ip=141178308
1173.266:0134:0138:trace:seh:dispatch_exception  info[0]=0000000000000008
1173.266:0134:0138:trace:seh:dispatch_exception  info[1]=0000000141178308
1173.266:0134:0138:warn:seh:dispatch_exception EXCEPTION_ACCESS_VIOLATION exception (code=c0000005) raised
1173.266:0134:0138:trace:seh:dispatch_exception  rax=00000001438beb80 rbx=000000007fee0000 rcx=0000000140000000 rdx=0000000000000001
1173.266:0134:0138:trace:seh:dispatch_exception  rsi=000000000054aa70 rdi=000000000054ac60 rbp=000000000041f760 rsp=000000000041f698
1173.266:0134:0138:trace:seh:dispatch_exception   r8=0000000000000000  r9=0000000000000000 r10=0000000141178308 r11=0000000000000060
1173.266:0134:0138:trace:seh:dispatch_exception  r12=0000000000000000 r13=0000000170077cd0 r14=000000000041fb00 r15=0000000170077ba8
 53.567:0130:0148:trace:seh:dispatch_exception  info[0]=0000000000000000
 53.567:0130:014c:warn:seh:dispatch_exception backtrace: --- Exception 0xc0000420.
 53.567:0130:0148:warn:seh:dispatch_exception EXCEPTION_BREAKPOINT exception (code=80000003) raised
 53.567:0130:0140:trace:seh:sigsys_handler SIGSYS, rax 0xb6, rip 0x1fd4e0d.
 53.567:0130:014c:trace:seh:dispatch_exception code=c0000420 flags=0 addr=0000000000E1C216 ip=e1c216
 53.567:0130:0148:trace:seh:dispatch_exception  rax=3d126baff9fbc89f rbx=55e4621b88025d0e rcx=00000000015ad940 rdx=000000007ffe0000
 53.567:0130:0134:warn:seh:dispatch_exception backtrace: --- Exception 0xc0000005.
 53.567:0130:014c:err:seh:dispatch_exception unknown exception (code=c0000420) raised
 53.961:0130:015c:warn:seh:virtual_unwind backtrace: 000000007B04D713: L"kernelbase.dll" + 000000000004D713.
 53.961:0130:015c:trace:unwind:RtlVirtualUnwind type 1 rip 7b04d713 rsp 12bfece0
 53.961:0130:015c:trace:unwind:dump_unwind_info **** func 4d6b0-4d748
 53.961:0130:015c:trace:unwind:dump_unwind_info unwind info at 000000007B0AD768 flags 0 prolog 0x1a bytes function 000000007B04D6B0-000000007B04D748
 53.961:0130:015c:trace:unwind:dump_unwind_info     frame register rbp offset 0xc0(%rsp)
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x1a: leaq 0xc0(%rsp),rbp
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x12: subq $0xc0,%rsp
 53.961:0130:015c:trace:unwind:dump_unwind_info     0xb: pushq %rsi
 53.961:0130:015c:trace:unwind:dump_unwind_info     0xa: pushq %rdi
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x9: pushq %rbp
 53.961:0130:015c:warn:seh:virtual_unwind backtrace: 00000002EDF0CB21: L"DXGI.DLL" + 000000000000CB21.
 53.961:0130:015c:trace:unwind:RtlVirtualUnwind type 1 rip 2edf0cb21 rsp 12bfedc0
 53.961:0130:015c:trace:unwind:dump_unwind_info **** func cad0-cb2b
 53.961:0130:015c:trace:unwind:dump_unwind_info unwind info at 00000002EE14A94C flags 0 prolog 0x4 bytes function 00000002EDF0CAD0-00000002EDF0CB2B
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x4: subq $0x28,%rsp
 53.961:0130:015c:warn:seh:virtual_unwind backtrace: 00000002EE08D2E3: L"DXGI.DLL" + 000000000018D2E3.
 53.961:0130:015c:trace:unwind:RtlVirtualUnwind type 1 rip 2ee08d2e3 rsp 12bfedf0
 53.961:0130:015c:trace:unwind:dump_unwind_info **** func 18d280-18d2f9
 53.961:0130:015c:trace:unwind:dump_unwind_info unwind info at 00000002EE136F04 flags 0 prolog 0x8 bytes function 00000002EE08D280-00000002EE08D2F9
 53.961:0130:015c:trace:unwind:dump_unwind_info     frame register rbp offset 0x0(%rsp)
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x8: subq $0x30,%rsp
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x4: leaq 0x0(%rsp),rbp
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x1: pushq %rbp
 53.961:0130:015c:warn:seh:virtual_unwind backtrace: 00000002EE0A327F: L"DXGI.DLL" + 00000000001A327F.
 53.961:0130:015c:trace:unwind:RtlVirtualUnwind type 1 rip 2ee0a327f rsp 12bfee30
 53.961:0130:015c:trace:unwind:dump_unwind_info **** func 1a31f0-1a364b
 53.961:0130:015c:trace:unwind:dump_unwind_info unwind info at 00000002EE128084 flags 3 prolog 0x0 bytes function 00000002EE0A31F0-00000002EE0A364B
 53.961:0130:015c:trace:unwind:dump_unwind_info     frame register rbp offset 0x80(%rsp)
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x0: leaq 0x80(%rsp),rbp
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x0: movq %r15,0x368(%rsp)
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x0: movq %r14,0x360(%rsp)
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x0: movq %r13,0x358(%rsp)
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x0: movq %r12,0x350(%rsp)
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x0: movq %rbp,0x370(%rsp)
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x0: movq %rdi,0x348(%rsp)
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x0: movq %rsi,0x340(%rsp)
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x0: movq %rbx,0x338(%rsp)
 53.961:0130:015c:trace:unwind:dump_unwind_info     0x0: subq $0x378,%rsp
 53.961:0130:015c:trace:unwind:dump_unwind_info     handler 00000002EE08D4E0 data at 00000002EE1280B4
 53.961:0130:015c:trace:seh:call_handler calling handler 00000002EE08D4E0 (rec=0000000012BFED00, frame=0000000012BFEE30 context=0000000012BFE230, dispatch=0000000012BFE100)
 53.961:0130:015c:trace:seh:call_handler handler at 00000002EE08D4E0 returned 1

Reference

How to get Proton logs

Halo Infinite in Steam -> Properties -> General -> Launch options, set PROTON_LOG=1 %command%


A different way:

  1. Copy ~/.local/share/Steam/steamapps/common/Proton - Experimental/user_settings.sample.py and save it as user_settings.py in the same directory
  2. Edit ~/.local/share/Steam/steamapps/common/Proton - Experimental/user_settings.py
    • Set DXVK_LOG_LEVEL to debug
  3. Now launch the Steam game again
  4. Logs will show up in ~/steam-<STEAM_GAME_ID>.log
    • To find the Steam game ID (app ID): find ~/.local/share/Steam/steamapps/ -maxdepth 1 -type f -name '*.acf' -exec awk -F '"' '/"appid|name/{ printf $4 "|" } END { print "" }' {} \; | column -t -s '|' | sort -k 2. For Halo Infinite, it's 1240440
@MadLittleMods MadLittleMods added x-needs-solution We haven't figured out how to solve this one yet and/or no sufficient workaround exists. A-Gaming labels May 21, 2023
@MadLittleMods
Copy link
Owner Author

MadLittleMods commented May 21, 2023

Started working once I updated back to mesa-git and lib32-mesa-git ✅ (3840x2160 @ 120+ FPS with the highest settings)

  1. pamac install lib32-mesa-git
  2. pamac install mesa-git
$ pamac search mesa --installed
lib32-mesa-git                                                       23.2.0_devel.171495.8e53b293f88.d41d8cd98f00b204e9800998ecf8427e-1  AUR
    an open-source implementation of the OpenGL specification, git
    version
mesa-git                                                             23.2.0_devel.171495.8e53b293f88.932463d268438ce945b21718552d92ab-1  AUR
    an open-source implementation of the OpenGL specification, git
    version

So there is some fix between mesa 23.0.3-1 and 23.2.0_devel.171495.8e53b293f88.932463d268438ce945b21718552d92ab-1 🤔

@MadLittleMods MadLittleMods added has-acceptable-solution and removed x-needs-solution We haven't figured out how to solve this one yet and/or no sufficient workaround exists. labels May 21, 2023
@MadLittleMods
Copy link
Owner Author

MadLittleMods commented Dec 11, 2023

As an extra update, I just tried going back to the stable mesa/lib32-mesa packages and Halo still doesn't launch. Just noting the versions to better nail down where the fix may be.

❌ Doesn't launch

$ pamac search mesa --installed
lib32-mesa  1:23.1.9-1                                                                                                                                                               multilib
    An open-source implementation of the OpenGL specification (32-bit)
[...]
mesa  1:23.1.9-1                                                                                                                                                                        extra
    An open-source implementation of the OpenGL specification

So the fix is somewhere between 23.1.9-1 and 23.2.0_devel.171495.8e53b293f88.932463d268438ce945b21718552d92ab-1 that we found working last time.

To note the versions mesa-git/lib32-mesa-git installed on this date (which also work with Halo):

✅ launches

$ pamac search mesa --installed
lib32-mesa-git  24.0.0_devel.182003.a8b68badd58.d41d8cd-1                                                                                                                                 AUR
    an open-source implementation of the OpenGL specification, git version
[...]
mesa-git  24.0.0_devel.182003.a8b68badd58.d41d8cd-1                                                                                                                                       AUR
    an open-source implementation of the OpenGL specification, git version

@MadLittleMods
Copy link
Owner Author

MadLittleMods commented Feb 10, 2024

Update as of 2024-02-10.

❌ Doesn't launch even though mesa stable is at 23.3.3-1 now

$ pamac search mesa --installed
lib32-mesa  1:23.3.3-1                                                        multilib
    An open-source implementation of the OpenGL specification (32-bit)
[...]
mesa  1:23.3.3-1                                                                 extra
    An open-source implementation of the OpenGL specification

✅ launches

$ pamac search mesa --installed
lib32-mesa-git  24.1.0_devel.184387.fc8a83c96df.d41d8cd-1                                                                                                                                   AUR
    an open-source implementation of the OpenGL specification, git version
[...]
mesa-git  24.1.0_devel.184387.fc8a83c96df.d41d8cd-1                                                                                                                                         AUR
    an open-source implementation of the OpenGL specification, git version

@MadLittleMods
Copy link
Owner Author

MadLittleMods commented May 6, 2024

Update as of 2024-05-06

❌ Doesn't launch even though mesa stable is at 24.0.2-1 now

$ pamac search mesa --installed
[...]
lib32-mesa  1:24.0.2-1                                                                      multilib
    An open-source implementation of the OpenGL specification (32-bit)
mesa  1:24.0.2-1                                                                               extra
    An open-source implementation of the OpenGL specification

Unable to use/try mesa-git because it depends on llvm-libs=17.0.6, llvm=17.0.6, clang=17.0.6 and gives unable to satisfy dependency errors (see #50)

@MadLittleMods
Copy link
Owner Author

Created an issue in the Mesa issue tracker to try to understand and get more details on this situation: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11126

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant