makepad/libs/audio_synth/tests
Admin 0e64721efa render, model, platform, audio_synth, ai: shadow atlases clipped per cascade and face, portable math for identical model builds everywhere, foliage and city rendering, Score replaces the synth sequencer, and sandbox audio generation fixes
- render: CSM cascades and spot/point shadow faces draw inside a per-draw scissor, with a depth shader that has no discard for solid and rigid casters (downtown city shadow pass 3.3 ms → 0.4 ms, spot shadows 2.7 → 0.1 ms); cascade selection by caster bounds on Apple; per-frame model draw order built once; clustered light terms per pixel; foliage wind, impostors, grass and LOD model sets; city glass and interior light; the viewmodel eye-space fix for narrow panes; joint-following parts use the skin's exact joint matrix.
- model / csg / mesh_edit / remesh / gltf: makepad_csg_math::portable (sin/cos/atan/exp/ln/pow/hypot/cbrt from exactly rounded operations), used at 320 call sites, so a model hashes and builds byte-identically on macOS and Linux (MODEL_GENERATOR_VERSION 2, CHARACTER_GENERATOR_VERSION 42; tests/portable_identity.rs); lathes always face outward; sculpted-shell booleans with a tolerant surface map; decal and badge lettering; LOD model sets; grip poses for first-person arms.
- platform: DrawCall scissor rectangles (Metal and Vulkan; other backends keep the old clip); draw_shader_ready for a fallback while a pipeline compiles; Metal clock reads once per frame; Linux render-texture readback.
- audio_synth: score.rs and its Sequencer are removed; game music now runs on Stage's Score engine; drum_note moves into instruments.rs. Includes Stage SF1's SoundFontInstrument change: programs share one loaded font instead of ~300 MB each.
- ai: the sfx model generates at whole seconds and trims to the requested length (fractional lengths came back as noise); fleet roles let node 165 serve audio as a fallback.
- widgets/core: screen recordings of any app inside a Makepad checkout land in <makepad>/local/screencap.
- fab: FabDragNumber read_only, for the sandbox time dial.

Checked on node 165: cargo check --release --workspace; makepad crate suites 1442 passed; sandbox 3095 passed; portable model hashes identical on the Mac mini.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 08:11:15 +02:00
..
bus_renders.rs render, model, scene, audio_synth, platform: the game renderer's lights, shadows, GI, VFX and HDR, a character kit, a shared synth, and the platform hooks the Sandbox needed -- libs/render is split into renderer/ and shaders/ modules (pure moves first) and gets stable cascaded shadow maps with a local shadow atlas, cascaded voxel-traced probe GI with SSAO (the CPU BVH placement and analytic emitters are gone), an opt-in HDR scene pass (Renderer::set_hdr_output: AgX, bloom, auto-exposure, FXAA), GPU particles with presets and decals (libs/scene/vfx, with a CPU fallback where float16 blending is missing), world streaming, skinned animation layers and a composed HUD (the HUD document no longer caps its element count; CameraState gains a far plane). Fab and Stage keep the 8-bit lane and in-scene VFX; only hosts that opt in change. libs/model gains the character kit (body, head, gear, clips, presets, FPS arms), construction shapes and decals, bevels, model programs with weathering, and import; mesh_edit decimation collapses every independent candidate per adjacency pass instead of one (a 4.6k-face mesh took 10 s). libs/csg drops the document/rig evaluator the Sandbox no longer uses. New libs/audio_synth (makepad-audio-synth): band-limited oscillators, filters, physically inspired engines, a sound-recipe format, FDN reverb, a spatializer and a look-ahead limiter, with the piano, drum kits, SoundFonts and Ironfish behind instruments; Stage's audio_dsp re-exports it. Platform: GpuInfo::float16_blend_targets, with Metal building an RGBA16Float PSO pair per Bgra8 shader on first use and Vulkan reporting the device's RGBA16F blend support; the WGSL backend forwards only the instance fields the fragment stage reads (39 vec4 varyings overflowed NVIDIA's limit and lost the device); an unbound Vulkan texture_depth slot gets the depth dummy instead of a colour view; an over-budget remote raw grab is box-halved until it fits instead of failing; Windows implements game_input_infos and XInput haptics, DirectInput FFB starts its constant force once and takes exclusive mode only in the foreground, iOS/tvOS get Core Haptics, and game_input gains an additive force API. The AI hub's Claude Code provider can serve one MCP server's tools natively (--mcp-config/--allowedTools, no think-tag litter for redacted thinking), the MCP server answers tool results with image content, and the fleet Qwen provider keeps its vision observations on the row they annotate. widgets gain the cyberpunk desktop style, and a Splash isolate inherits the stylesheet of the VM that allocates it. Checked: cargo check --workspace on macOS (clean apart from apps/source-library's own warnings), makepad-platform/widgets/render/scene/model/audio-synth/mesh-edit/csg for x86_64-unknown-linux-gnu and x86_64-pc-windows-msvc (clean); tests: platform 318, render 488, widgets-core 1307, model 158, scene 35, audio-synth 40, mesh-edit 9, all passing. 2026-09-29 01:55:13 +02:00
engine_renders.rs render, model, scene, audio_synth, platform: the game renderer's lights, shadows, GI, VFX and HDR, a character kit, a shared synth, and the platform hooks the Sandbox needed -- libs/render is split into renderer/ and shaders/ modules (pure moves first) and gets stable cascaded shadow maps with a local shadow atlas, cascaded voxel-traced probe GI with SSAO (the CPU BVH placement and analytic emitters are gone), an opt-in HDR scene pass (Renderer::set_hdr_output: AgX, bloom, auto-exposure, FXAA), GPU particles with presets and decals (libs/scene/vfx, with a CPU fallback where float16 blending is missing), world streaming, skinned animation layers and a composed HUD (the HUD document no longer caps its element count; CameraState gains a far plane). Fab and Stage keep the 8-bit lane and in-scene VFX; only hosts that opt in change. libs/model gains the character kit (body, head, gear, clips, presets, FPS arms), construction shapes and decals, bevels, model programs with weathering, and import; mesh_edit decimation collapses every independent candidate per adjacency pass instead of one (a 4.6k-face mesh took 10 s). libs/csg drops the document/rig evaluator the Sandbox no longer uses. New libs/audio_synth (makepad-audio-synth): band-limited oscillators, filters, physically inspired engines, a sound-recipe format, FDN reverb, a spatializer and a look-ahead limiter, with the piano, drum kits, SoundFonts and Ironfish behind instruments; Stage's audio_dsp re-exports it. Platform: GpuInfo::float16_blend_targets, with Metal building an RGBA16Float PSO pair per Bgra8 shader on first use and Vulkan reporting the device's RGBA16F blend support; the WGSL backend forwards only the instance fields the fragment stage reads (39 vec4 varyings overflowed NVIDIA's limit and lost the device); an unbound Vulkan texture_depth slot gets the depth dummy instead of a colour view; an over-budget remote raw grab is box-halved until it fits instead of failing; Windows implements game_input_infos and XInput haptics, DirectInput FFB starts its constant force once and takes exclusive mode only in the foreground, iOS/tvOS get Core Haptics, and game_input gains an additive force API. The AI hub's Claude Code provider can serve one MCP server's tools natively (--mcp-config/--allowedTools, no think-tag litter for redacted thinking), the MCP server answers tool results with image content, and the fleet Qwen provider keeps its vision observations on the row they annotate. widgets gain the cyberpunk desktop style, and a Splash isolate inherits the stylesheet of the VM that allocates it. Checked: cargo check --workspace on macOS (clean apart from apps/source-library's own warnings), makepad-platform/widgets/render/scene/model/audio-synth/mesh-edit/csg for x86_64-unknown-linux-gnu and x86_64-pc-windows-msvc (clean); tests: platform 318, render 488, widgets-core 1307, model 158, scene 35, audio-synth 40, mesh-edit 9, all passing. 2026-09-29 01:55:13 +02:00
instrument_renders.rs render, model, platform, audio_synth, ai: shadow atlases clipped per cascade and face, portable math for identical model builds everywhere, foliage and city rendering, Score replaces the synth sequencer, and sandbox audio generation fixes 2026-09-30 08:11:15 +02:00