Build the full end-to-end zero-copy encoder, validated on Intel/VAAPI: - render_nv12: fragment-shader RGBA->NV12 that renders luma/chroma into the imported R8/RG8 plane render targets (compute storage can't write the DMA-BUF-backed planes; render attachments can). - dmabuf: import_raw imports an NV12 DMA-BUF by explicit layout; the two plane images + shared memory are now destroyed by wgpu via texture_from_raw drop callbacks (Arc MemoryGuard frees the memory once both images are gone, in wgpu's wait-idle'd deferred pass) -- fixes the teardown segfault. - encoder::ZeroCopyEncoder: renders an RGBA texture straight into a pooled VAAPI surface (imports cached by VASurface id) and encodes with h264_vaapi. encode_rgba + finish; the caller renders on device(). Tests: real-frame render into the surface matches the CPU NV12 reference, and a 30-frame encode produces valid H.264 (ffprobe-verified) with clean teardown. Not yet wired into the editor. |
||
|---|---|---|
| .. | ||
| beamdsp | ||
| egui_node_graph2 | ||
| gpu-video-encoder | ||
| lightningbeam-core | ||
| lightningbeam-editor | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| build-static.sh | ||
| build-windows.bat | ||