Repository navigation
v1.0.7
Pre-release
Pre-release
Vivid 1.0.7
Highlights:
- Wallpapers no longer stay black on AMD GPUs whose drivers advertise DCC (multi-plane) DMA-BUF modifiers; the GNOME consumer used to reject every such buffer (#4).
- DMA-BUF negotiation now recovers by itself when a display consumer rejects a buffer pool, instead of requiring several wallpaper switches.
- Lower frame-publish latency: renderer relays are event-driven and NVIDIA video uploads no longer stall the GPU queue every frame.
- Scene renderer: interactive 3D perspective scenes, restored skinned models, particle overrides and cascade shadows, plus many fidelity fixes against Wallpaper Engine.
Display pipeline and DMA-BUF:
- GNOME consumer: identify DMA-BUF planes by device/inode instead of fd index, so non-disjoint multi-plane modifiers (AMD DCC) import through the Vulkan shadow relay.
- Producer: when a consumer reports BIND_FAILED for a renderer-owned pool, quiesce that worker and renegotiate against the updated modifier blacklist instead of blacklisting every remaining modifier and giving up with NO_DMABUF_SCHEME.
- Producer: a renderer worker that fails after publishing its buffers now releases that pool, so the next wallpaper no longer hangs in negotiation.
- Validate the exact fourcc/modifier/plane-count/usage tuple before creating export images in the video and web Vulkan backends, and stop advertising LINEAR capabilities the selected GPU cannot actually create.
Performance:
- Shared event-driven frame pump for scene, video and web workers: paused workers sleep instead of polling, and new frames wake the relay immediately.
- NVIDIA video path: CUDA<->Vulkan timeline semaphores, per-slot command buffers/fences and exported SYNC_FD acquire fences replace the per-frame cuStreamSynchronize and vkQueueWaitIdle.
- VA-API video path: copy decoded frames with vkCmdCopyImage when they match the export slot exactly.
- Scene renderer publishes offscreen frames without a per-frame CPU fence wait.
Scene renderer:
- Support interactive 3D perspective scenes (for example the solar system wallpaper).
- Restore skinned models, particle overrides and directional cascade shadows.
- Align layer visibility and render-target identity with Wallpaper Engine; defer the MSAA model-depth resolve.
- Keep pointer uniforms independent of camera-parallax delay; keep vertex-mode distortions and text effect finals in scene space.
- Fix padded spritesheet texture metadata and keep sprite image-card UVs in frame-local space.
- Give each particle instance its own emit runtime.
- Log a bounded first-frame stage trace after each render graph compile so worker crashes can be attributed to a specific render pass from the log.
- Internal: authored layer identity now lives on SceneObject, and the scene parser and script host are split into smaller units.
Tooling and documentation:
- Add a Chinese README and release installation instructions.
- Add golden-frame acceptance tooling and make
tools/vivid.sh testrun real tests; restore the standalone scene capture library and allow selecting its FPS. - Fix release metadata and notes publishing in the release workflow.