#6681 closed defect (fixed)

Unable to start game when switching to Vulkan for macOS

Reported by: Langbart Owned by: Vladislav Belov
Priority: Release Blocker Milestone: Alpha 27
Component: Core engine Keywords:
Cc: Patch: Phab:D4884

Description

to reproduce

  • start 0ad, go to settings
  • switch to Vulkan (renderer backend)
  • close 0ad
  • start 0ad
  • unable to change the renderer backend through the user interface
    • manually removing Vulkan from the user.cfg solves the issue
❯ pyrogenesis
TIMER| InitVfs: 1.716 ms
FILES| Main log written to '/Users/paria/Library/Application Support/0ad/logs/mainlog.html'
FILES| Interesting log written to '/Users/paria/Library/Application Support/0ad/logs/interestinglog.html'
TIMER| CONFIG_Init: 5.345 ms
Sound: AlcInit success, using Built-in Output
WARNING: Failed to set the video mode to fullscreen for the chosen resolution 1920x1200:32 ("Failed to load Vulkan Portability library"), falling back to windowed mode
ERROR: SetVideoMode failed in SDL_CreateWindow: 1024x768:32 0 ("Failed to load Vulkan Portability library")
libc++abi.dylib: terminating with uncaught exception of type PSERROR_System_VmodeFailed
zsh: abort      pyrogenesis

lldb

❯ lldb /Users/paria/Developer/0ad/binaries/system/pyrogenesis
(lldb) target create "/Users/paria/Developer/0ad/binaries/system/pyrogenesis"
Current executable set to '/Users/paria/Developer/0ad/binaries/system/pyrogenesis' (x86_64).
(lldb) run
    Process 45495 launched: '/Users/paria/Developer/0ad/binaries/system/pyrogenesis' (x86_64)
    TIMER| InitVfs: 10.462 ms
FILES| Main log written to '/Users/paria/Library/Application Support/0ad/logs/mainlog.html'
FILES| Interesting log written to '/Users/paria/Library/Application Support/0ad/logs/interestinglog.html'
TIMER| CONFIG_Init: 5.371 ms
2023-01-11 15:19:32.142559+0100 pyrogenesis[45495:426324] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x10583cf80> F8BB1C28-BAE8-11D6-9C31-00039315CD46
2023-01-11 15:19:32.180927+0100 pyrogenesis[45495:426324]  HALC_ShellDriverPlugIn::Open: Can't get a pointer to the Open routine
2023-01-11 15:19:32.181749+0100 pyrogenesis[45495:426324]  HALC_ShellDriverPlugIn::Open: Can't get a pointer to the Open routine
Sound: AlcInit success, using Built-in Output
WARNING: Failed to set the video mode to fullscreen for the chosen resolution 1920x1200:32 ("Failed to load Vulkan Portability library"), falling back to windowed mode
ERROR: SetVideoMode failed in SDL_CreateWindow: 1024x768:32 0 ("Failed to load Vulkan Portability library")
libc++abi.dylib: terminating with uncaught exception of type PSERROR_System_VmodeFailed
Process 45495 stopped
* thread #1, name = 'main', queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x00007fff66e3832a libsystem_kernel.dylib`__pthread_kill + 10
libsystem_kernel.dylib`__pthread_kill:
->  0x7fff66e3832a <+10>: jae    0x7fff66e38334            ; <+20>
    0x7fff66e3832c <+12>: movq   %rax, %rdi
    0x7fff66e3832f <+15>: jmp    0x7fff66e32619            ; cerror_nocancel
    0x7fff66e38334 <+20>: retq   
Target 0: (pyrogenesis) stopped.
(lldb) bt
* thread #1, name = 'main', queue = 'com.apple.main-thread', stop reason = signal SIGABRT
  * frame #0: 0x00007fff66e3832a libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x00007fff66ef8e60 libsystem_pthread.dylib`pthread_kill + 430
    frame #2: 0x00007fff66dbf808 libsystem_c.dylib`abort + 120
    frame #3: 0x00007fff64024458 libc++abi.dylib`abort_message + 231
    frame #4: 0x00007fff640158bf libc++abi.dylib`demangling_terminate_handler() + 262
    frame #5: 0x00007fff65b52a5f libobjc.A.dylib`_objc_terminate() + 104
    frame #6: 0x00007fff64023887 libc++abi.dylib`std::__terminate(void (*)()) + 8
    frame #7: 0x00007fff640261a2 libc++abi.dylib`__cxxabiv1::failed_throw(__cxxabiv1::__cxa_exception*) + 27
    frame #8: 0x00007fff64026169 libc++abi.dylib`__cxa_throw + 113
    frame #9: 0x000000010020bfe2 pyrogenesis`InitGraphics(args=0x00007ffeefbfec40, flags=<unavailable>, installedMods=<unavailable>) at GameSetup.cpp:639:4 [opt]
    frame #10: 0x0000000100003c87 pyrogenesis`RunGameOrAtlas(argv=<unavailable>) at main.cpp:682:4 [opt]
    frame #11: 0x00000001000022f7 pyrogenesis`main(argc=1, argv=0x00007ffeefbfef80) at main.cpp:740:2 [opt]
    frame #12: 0x00007fff66cf0cc9 libdyld.dylib`start + 1

expected behavior

  • a warning should show up, Vulkan isn't supported, similar to Post-processing/ Antialiasing
    • related ticket: #5969 - Antialiasing error and warnings (macOS) (23/Jan/21)

Change History (2)

comment:1 by Vladislav Belov, 16 months ago

Patch: Phab:D4884

comment:2 by Vladislav Belov, 16 months ago

Owner: set to Vladislav Belov
Resolution: fixed
Status: newclosed

In 27438:

Fixes creating window on macOS in case of missing Vulkan driver. Fixes #6681

Tested By: Langbart

Differential Revision: https://code.wildfiregames.com/D4884

Note: See TracTickets for help on using tickets.