Skip to content

Fix macOS stock-level audio exhaustion - #131

Merged
themuffinator merged 4 commits into
mainfrom
codex/fix-macos-openal-exhaustion-122
Aug 26, 2026
Merged

Fix macOS stock-level audio exhaustion#131
themuffinator merged 4 commits into
mainfrom
codex/fix-macos-openal-exhaustion-122

Conversation

@themuffinator

Copy link
Copy Markdown
Owner

Summary

  • build and bundle checksum-pinned OpenAL Soft 1.25.1 for macOS release, validation, sanitizer, and universal2 paths
  • keep the runtime package-relative at Contents/Frameworks/libopenal.1.dylib, with architecture, deployment-floor, dependency, signing, archive, and source/licence validation
  • make OpenAL sample-buffer allocation/upload failures non-fatal so a successfully loaded map is not torn down
  • retain Apple's OpenAL framework as a compile-only compatibility corridor
  • update player, build, support-policy, planning, attribution, and candidate release documentation

Why

Issue #122 provided strong evidence that the published 0.12.0 package was still using Apple's deprecated OpenAL framework and exhausting its buffer pool on stock single-player maps. Lowering s_maxSoundsPerShader only moved the threshold, while s_noSound 1 allowed the same maps to stay loaded.

Bundled OpenAL Soft is the primary fix. The non-fatal allocation path is defense in depth for resource exhaustion or unusual third-party providers.

Dependency and licence review

  • upstream: OpenAL Soft 1.25.1
  • source: official GitHub tag archive
  • verified SHA-256: 5f8efe8dfba5e9307a50251ba615ace857c7fa9dddfe34130b83e213d7f7cf24
  • linkage: dynamic
  • licence: LGPL v2 or later; compatible with this GPLv3 repository
  • package payload: LGPL text, source/build notice, PFFFT/fmt/Microsoft GSL notices, and exact corresponding source archive

Validation

  • full Windows x64 engine, dedicated server, SP/MP GameLibs, OpenGL renderer, and Vulkan renderer build
  • macos_openal_provider_policy.py
  • macos_metal_bridge.py
  • macos_universal2_assembly.py
  • macos_sanitizer_ci.py
  • release_tooling_safety.py
  • documentation-link and source-charset checks
  • shell and Python syntax checks
  • actionlint on all changed workflows
  • broad macos-static run: every Single-player levels abort back to the main menu: CreateOpenALBuffer fails on Apple's OpenAL (macOS arm64, 0.12.0) #122 provider/package test passed; it also exposed an unrelated texture-filter push-smoke wiring regression on current main, which will be corrected separately

Physical Apple-hardware retesting is still needed before strengthening the project's experimental macOS support claim.

Fixes #122

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f9ecccc85e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/validation/openq4_validate.py Outdated
@themuffinator
themuffinator force-pushed the codex/fix-macos-openal-exhaustion-122 branch from 5d34011 to e77d13f Compare August 26, 2026 18:54
@themuffinator

Copy link
Copy Markdown
Owner Author

CI triage update: I compared the four red macOS Push Verification jobs with the current main-branch run at 0751161. Main fails the same renderer matrix cases with the same outcomes (foundation/PBR exit -11; cluster/default renderer expectations), while this branch completes the OpenAL Soft preparation, build, tests, install, and payload upload. The matching main run is https://github.com/themuffinator/openQ4/actions/runs/32992669468 and the branch run is https://github.com/themuffinator/openQ4/actions/runs/33002292512. I am therefore treating those four renderer-smoke failures as inherited baseline failures, not regressions from this audio change; the platform commit-validation jobs remain the merge gate.

@themuffinator
themuffinator merged commit dec0b8f into main Aug 26, 2026
21 of 25 checks passed
@themuffinator
themuffinator deleted the codex/fix-macos-openal-exhaustion-122 branch August 26, 2026 20:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Single-player levels abort back to the main menu: CreateOpenALBuffer fails on Apple's OpenAL (macOS arm64, 0.12.0)

1 participant