Skip to content

v1.9.4-rc.2

Pre-release
Pre-release

Choose a tag to compare

@EtienneLescot EtienneLescot released this 10 Aug 21:33

Warning

Obsolete — do not install or test this build. The 1.9.3 and 1.9.4 release candidates were never promoted to stable. Everything they contained is included in v1.9.5-rc.1 and later, which was cut fresh from main. Their release branches have been deleted; the tags are kept so these pages stay linkable.


This release candidate is a first attempt at the Windows stop hang reported in #252, #292 and #327 — "Timed out waiting for native Windows capture to stop. The recording could not be saved."

It is not proven to fix it. Nobody has reproduced that hang on hardware the maintainers control, and there is good evidence for two distinct causes rather than one, of which this addresses a single one. What it does add is the ability to answer the leading question from a bug report instead of guessing at it. Details and what to attach are in #252.

v1.9.4-rc.1 was cut but never published — its release step failed — so everything below landed in a build nobody could download. The "Changes since v1.9.4-rc.1" list further down is therefore accurate and misleading at the same time; this is the real span.

Windows recording

  • GPU DXGI encode path, with a fallback to the previous CPU readback at every step, so a machine the GPU path does not fit records exactly as it did before
  • The path that ran is now reported: videoInput in encoder-selection, and a new capture-adapter event naming the GPU the capture device landed on versus the one driving the display being captured
  • A stalled stop now names the call each thread was inside: encode_stage for the video writer, audio_stage for the audio mixer
  • Fixed: an AcquireSync timeout was never detected, so a busy bridge fell through without holding its key and a broken one was retried forever
  • Fixed: inline webcam picture-in-picture would have silently lost its overlay on the GPU path
  • Fixed: the capture loop slept a full frame interval after doing its work, so a 30 fps recording delivered about 22

Diagnostics

  • The standalone tool (scripts/diagnostic-tool) can finally test audio: --system-audio and --mic. Audio and video writes contend for the same lock, so a run without audio has nothing to contend with and can pass on a machine where the app hangs every time

Packaging

  • The OpenMP runtime the ggml speech-to-text backends import is now shipped, and Visual Studio is found where it actually lives
  • libgomp is bundled in the AppImage, the one Linux format that cannot declare it as a dependency
  • The Linux desktop portal is declared, with the backend that implements it named

Everything since v1.9.2

  • fix(linux): bundle libgomp in the AppImage, the one format that cannot declare it
  • docs(build): fix a self-contradiction in the AppImage paragraph
  • ci(store): submit the appx to the Microsoft Store from the release build
  • fix(store): report the actual submission result, not the configuration
  • fix(linux): declare the portal, and name the backend that implements it
  • ci(winget): stop skipping the publish in silence
  • docs(build): name the packages instead of counting them
  • ci(winget): name the two gates that each cost a release to discover
  • docs(dist): make the Microsoft Store the recommended Windows route
  • docs(dist): describe the winget gate by its prerequisites, not its if
  • docs(dist): stop calling the winget job switched off
  • fix(win): ship the OpenMP runtime the ggml backends actually import
  • fix(win): tell a directory from a file, and find Visual Studio where it is
  • fix(wgc): add GPU DXGI path for Windows capture readback
  • fix(wgc): make the GPU encode path degrade instead of failing
  • fix(wgc): keep an encode off the frame lock, and name where it wedges
  • fix(wgc): repair the four things the GPU path got wrong under review
  • fix(wgc): build the bridge texture where a failure can still fall back
  • fix(wgc): give the audio write its own breadcrumb instead of the video's
  • fix(wgc): clear the breadcrumb by scope, not by remembering to
  • fix(win): pace the capture loop to a deadline instead of sleeping a full period
  • feat(wgc): report which GPU capture landed on, and let the tool test audio
  • style(diagnostic): wrap the two lines biome wanted wrapped
  • fix(wgc): stop the adapter report dereferencing what DXGI did not give it
  • fix(ci): start release notes from a tag that exists
  • fix(ci): let each consumer decide what "no previous release" means

Full Changelog: v1.9.2...v1.9.4-rc.2