Skip to content

Vulkan renderer crashes with SIGSEGV on Apple Silicon (macOS) #17

Description

@Hannez23

Hallo Muffinator,

because of your great work in openQ4, I was interested in your further projects.
when you have time, please have a look down here.
OpenGL is running without any problems.
With +set cl_renderer vk I get this: (a black screen...)
Do you have any idea? The summary down here, I have done this with ChatGPT (because of my English grammar)

Description

I am trying to run the Apple Silicon build of FnQ3 0.1.0.158 on an Apple M4 Max Mac running macOS 26.6.2.

The vk renderer is correctly detected and initialized, but FnQ3 immediately crashes with signal 11 (SIGSEGV) after completing initialization.

System

  • CPU/GPU: Apple M4 Max
  • Architecture: aarch64 / Apple Silicon
  • OS: macOS 26.6.2
  • FnQ3: 0.1.0.158
  • Build date: Aug 12 2026
  • Renderer: Vulkan (vk)
  • Display: Built-in Retina Display
  • Display refresh rate: 120 Hz

Files

I am using the Apple Silicon build containing:

  • fnquake3
  • fnquake3_glx_aarch64.dylib
  • fnquake3_vk_aarch64.dylib
  • fnquake3_rtx_aarch64.dylib

The executable has been made executable with the appropriate permissions.

Reproduction

From the FnQ3 directory:

./fnquake3 +set cl_renderer vk

Vulkan initializes successfully, but the application then terminates with:

Started tty console
]Received signal 11, exiting...
----- Client Shutdown (Signal caught (11)) -----

I also tested with HDR explicitly disabled:

./fnquake3 +set cl_renderer vk +set r_hdr 0

The result is identical.

I then tested Vulkan in a normal window instead of fullscreen:

./fnquake3 +set cl_renderer vk +set r_hdr 0 +set r_fullscreen 0

This also produces exactly the same SIGSEGV.

Therefore, the crash does not appear to depend on fullscreen mode, Retina fullscreen resolution, or the HDR setting.

Vulkan initialization output

The Vulkan renderer itself appears to initialize successfully:

Initializing Vulkan display
...
Available physical devices:
 0: Integrated Apple M4 Max, 0x1a060209
 1: Integrated Apple M4 Max, 0x1a060209

...selected physical device: 0
...using 4x MSAA
...
VK_VENDOR: Apple Inc.
VK_RENDERER: Integrated Apple M4 Max, 0x1a060209
VK_VERSION: API: 1.0.357, Driver: 0.2.2210

VK_MAX_TEXTURE_SIZE: 2048
VK_MAX_TEXTURE_UNITS: 8
...
Initializing Shaders
----- finished R_Init -----

The renderer reaches:

----- finished R_Init -----

and sound initialization also completes successfully:

Sound initialization successful.

The UI VM is loaded successfully:

Loading vm file vm/ui.qvm...
VM file ui compiled to 308068 bytes of code
ui loaded in 1689600 bytes on the hunk
36 arenas parsed
33 bots parsed
--- Common Initialization Complete ---

The crash occurs immediately afterwards:

Opening IP6 socket: [::]:27960
Opening IP socket: 0.0.0.0:27960
Working directory: /Applications/Games/Quake/Quake 3/fnquake3
Started tty console (use +set ttycon 0 to disable)
]Received signal 11, exiting...

Windowed test

With:

./fnquake3 +set cl_renderer vk +set r_hdr 0 +set r_fullscreen 0

the renderer reports:

...setting mode 2: 512 384
...
MODE: 2, 1024 x 768 windowed hz:N/A

The Vulkan initialization is otherwise identical, and the application still crashes at the same point with signal 11.

Additional observations

The display reports HDR/EDR capability:

display HDR enabled
headroom 16.00
SDR white 203 nits
display max 3248 nits

However, the selected output backend is:

output backend: request auto, selected sdr-srgb

and disabling r_hdr does not change the crash.

The crash therefore appears to happen after renderer initialization and after common initialization, rather than while loading or initializing Vulkan itself.

Additional information:
I am also running the current openQ4 build 0.12 on the same Mac (Apple M4 Max, macOS 26.6.2). Its Vulkan renderer works correctly and is fully playable. Therefore, Vulkan/MoltenVK itself is known to work correctly on this system. The SIGSEGV appears to be specific to FnQ3.

Question

Could this be a macOS/Apple Silicon-specific issue in the Vulkan path, possibly related to the transition into the main loop, first frame, SDL3 event handling, or the macOS console/TTY handling?

I can provide an LLDB backtrace if that would be useful.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    component:renderer-glxGLx renderer behavior or diagnostics.needs-human-reviewAutomation could not safely make the final call.type:build-installBuild, packaging, install, or dependency issue.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions