Repository navigation
v0.1.0
The first release: the engine as a library with a Rust API, a C ABI and a browser module, the reference hosts, and the
Framegen 2.0 extension built on it.
Added
- The engine as the whole product in layers: the Core (
Engine,Model,Session: two frames in, the frame at any
phase out), the Stream (timestamped frames in, intervals out, with scene cut and held frame classification and the
anime cadence), the Pacer (what to present on a display tick and what to generate, replayable fromtrace v1
recordings). Reference hosts: a web page (examples/web) and a native player (examples/player). - Surfaces: the Rust API, the C ABI (
flyhigh.h,libflyhigh) and the JavaScript classes (FhEngine,FhModel,
FhSession,FhStream,FhPacer); Python (ctypes) and C++ (header only) bindings over the C ABI; a C example. - Options declared once with the
Optionsderive;docs/options.mdgenerated byflyhigh-dev options-docand checked
in CI. - Static protection for HUDs and subtitles, and the host's protection mask (
protection_mask,write_mask). - D3D11 shared textures into the Vulkan device without a copy (
interop::d3d11_shared_texture). - DX12 through the DXC compiler: the DLLs beside the library or
EngineOptions::dxc_path,DeviceInfo::shader_compiler
in the report; the Windows release archive carries them. - The bench suite: per-GPU baselines and
tools/baseline.py --checkwith a 3% rule on times. - GPU costs from the frames themselves:
Stream::push_timed/generate_timed(pushTimed/generateTimedin
the browser) run the real work under timestamp queries; the reference web host feeds them to the Pacer. - The Pacer records its own
trace v1(record,trace,stop_recording;fh_pacer_record/fh_pacer_trace_json
in C,record/trace/stopRecordingin the browser), with live option changes as events a replay applies. adapters.jsnext to the browser module:VideoSource,CanvasPresenter,TickSource,CostSampler,
ReadbackNudge,warmUp,pacerDefaults; the reference web host is built from them.- Stream and Pacer options and inputs in the browser accept camelCase keys beside snake_case.
- A release workflow on
v*tags: the C library, header, bindings and model per platform, the browser module.
Changed
- The browser module is built with a size-first profile: 1.02 MB, with a 1.3 MB budget in CI.
generate_timedmeasures the mid in video mode too (a cadence composite stays unmeasured), so a host in video mode
gets its mid cost samples instead of the seed.VideoSource(adapters.js) draws a frame whose size differs from the slot's throughimportExternalTexture, so a
host can run the stream at the presentation size without a copy of its own; the 1:1 copy stays for matching sizes.- Pipelines compile on first use;
warm_upcompiles a session's kernels before the first frame. - Firefox hosts present at least 7 ms apart (the Pacer's
min_present_interval_ms), the adapter's default.
Removed
- The
fh_*function families of the browser module (fh_create,fh_vid_*,fh_ext_*,fh_prepare*,
fh_autotune,fh_tune_*,fh_set_*): the classes replace them;engine.autotuneand the session's
pairTimed/midTimedcarry over what only they had.
Full Changelog: https://github.com/getflyhigh/flyhigh-engine/commits/v0.1.0
Full Changelog: https://github.com/getflyhigh/flyhigh-engine/commits/v0.1.0