Repository navigation
v2.2.2
Fixed
- FFmpeg
Processleak whenProcess.Start()throws, which left the export service permanently stuck until the app was restarted - Video texture cache key ignoring target resolution — a real GPU memory corruption risk when previewing then exporting a shader with a video texture at a different resolution
- "Disk full" error incorrectly reclassified as transient, causing pointless export retries
- FFmpeg SHA-256 integrity check only performed once at startup (TOCTOU); now re-verified before every launch
iMouse,iDate, andiChannelResolutionuniforms always reading zero- Render queue's export loop running on the UI thread, freezing the interface during batch exports
- No global unhandled-exception handlers
ShadertoyJsonParsercrashing on valid but unexpectedly-shaped JSON- Path traversal in
iChannelasset resolution - No handling of GPU device loss (DXGI device removed/reset)
- Output filename not guarded against CLI flag confusion
- Hardware encoder probe failures silently swallowed
- Transient COM pixel shader leak on shader compilation failure
- Unprotected
async voidhandler for video drag-and-drop MainWindowViewModelmemory leak from never unsubscribing its event handlers- Removed dead, unused single-pass rendering duplication
Added
- New
Videotoy.TestsxUnit project (wired into CI) with regression tests for the FFmpeg transient-error classifier, the resolution-aware video frame cache key, and Shadertoy JSON parsing
Full Changelog: v2.2.1...v2.2.2