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

Fix OpenAL errors for Cinematic Audio and restore Classic Doom frame rate #982

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

SRSaunders
Copy link

@SRSaunders SRSaunders commented Feb 14, 2025

Fixes #980 and #981. Added fix for #955.

This PR solves the following issues:

  1. Fixes a few OpenAL API mistakes in the Classic Doom code which generated sticky non-zero error codes
  2. Adds additional defensive code in the Doom 3 OpenAL modules to avoid sticky non-zero error codes
  3. Fixes the OpenAL Cinematic Audio code to perform more resilient alError error clearing and handling
  4. Restores Doom Classic frame rate to 35 Hz
  5. Updates Linux and macOS cmake debug build scripts to use FFmpeg, release scripts still use Bink
  6. Suppresses annoying Apple AUHAL warning messages (caused by OpenAL) in the XCode console for release builds
  7. Fixes s_noSound idCVar and s_restart command so they can be used with OpenAL and XAudio2 without errors or crashes. Even though they support dynamic changes in session, the result is not perfect since level sound reloads are not currently triggered by s_restart, and default "beep" sounds can remain until the next level load (and even permanently for pre-loaded sounds). Nonetheless, it works pretty well now.
  8. NEW for issue Alt+Enter during cutscenes can crash the renderer if CRT is enabled #955: Added fix to always update current binding sets if binding layout has changed. Back ported from push constants branch.

Tested on Windows 10, Manjaro Linux, and macOS Ventura.

@klaussilveira
Copy link

Tested on Debian 12, release and debug builds, no issues. 👍

@SRSaunders
Copy link
Author

SRSaunders commented Feb 15, 2025

Commit 17d982e reverts a change in the way the preloaded sounds counter works. Original logic was correct. There is no change in overall functionality of the PR since this counter is only used for printing a status message to the console.

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.

No Cinematic Audio playback with OpenAL >= 1.24.2
2 participants