Foundation for hardware video decode in BOTH preview and export: wgpu textures can't cross devices, and a hardware-decoded frame is a DMA-BUF-imported texture that needs the import extensions (only addable via wgpu-hal device_from_raw). So eframe + the compositor + decode + encode must share ONE custom device. - vk_device::create_windowed(): the existing import-capable DrmDevice plus VK_KHR_swapchain (the WSI surface instance extensions are already enabled by Instance::init), for use as the editor's main device. - main.rs: on Linux, build the shared device and inject it into eframe via WgpuSetup::Existing (the egui fork supports it); fall back to wgpu's normal device + software decode on any failure, on other platforms, or via LB_NO_SHARED_DEVICE. The DrmDevice's wgpu handles are cloned into eframe (Arc-backed), so the VkDevice persists with them. Runtime-verified: the editor launches and renders identically (canvas/vello, video, panels) on the shared device, and the env-var fallback works. |
||
|---|---|---|
| .. | ||
| beamdsp | ||
| egui_node_graph2 | ||
| gpu-video-encoder | ||
| lightningbeam-core | ||
| lightningbeam-editor | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| GPU_VIDEO_DECODE_PLAN.md | ||
| build-static.sh | ||
| build-windows.bat | ||