Skip to content

v1.0.7

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Sep 04:25
· 50 commits to main since this release
v1.0.7
03d4461

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 test run real tests; restore the standalone scene capture library and allow selecting its FPS.
  • Fix release metadata and notes publishing in the release workflow.