Skip to content

elel-code/Gilder

Repository files navigation

Gilder

Gilder 是面向 niri、Hyprland 等独立 compositor 的原生壁纸引擎。当前主线是:

  • FFmpeg 负责 demux/parser/packet 和 Vulkan 硬件解码;
  • Gilder/Vulkanalia 负责 AV_PIX_FMT_VULKAN/AVVkFrame 到 descriptor heap、渲染和 Wayland present;
  • scene 正在按 Godot 风格边界全面重写,WE 语义只以 reverse-engineered/ 为准。

当前原则

  • 不保留旧 GStreamer display-sink、decoded-frame CPU copy、descriptor-set fallback。
  • scene runtime、binary ingest、draw-pass/effect graph、旧 shader wrapper 和旧 smoke 脚本已删除。
  • 0 兼容旧代码和旧字段;不接受 CPU compatibility renderer、mesh blocker、隐藏 fallback、 样本特化修复或临时补丁。
  • 4K 240Hz 和 10 秒 host dirty/retained memory < 40 MiB 是性能硬门槛。
  • 能用 GPU 的工作必须上 GPU;能用 GPU 却留在 CPU 热路径是不可接受实现。
  • 无法确认的 WE 语义必须继续反汇编并更新 reverse-engineered/ 后再实现。
  • 架构必须继续对齐 Godot 的 RenderingServer、RendererSceneRender、RenderingDevice、storage 和 Vulkan driver 边界。
  • 严格模块化是硬约束;禁止新增堆叠文件或继续往历史超大文件里追加 scene 主线逻辑。
  • 脚本入口使用 Python,并通过 uv run python ... 调度;旧 shell smoke 已删除。

仓库结构

  • src/bin/gilderd.rs:daemon 入口。
  • src/bin/gilderctl.rs:daemon CLI。
  • src/bin/gilder-convert.rs:Wallpaper Engine 转换和打包工具。
  • src/bin/gilder-native-vulkan.rs:原生 Vulkan 诊断入口。
  • src/engine/scene_engine/:新的 scene engine 边界。
  • src/renderer/native_vulkan/scene_backend/:新的 native Vulkan scene backend。
  • src/renderer/native_vulkan/video/:FFmpeg demux、Vulkan HW decode、pacing 和 evidence helper。
  • src/renderer/native_vulkan/vulkan/:Vulkanalia backend。
  • docs/gilder-scene-engine-architecture.md:scene 全面重写架构。
  • docs/native-vulkan-video-ffmpeg-mainline.md:FFmpeg Vulkan video 主线。
  • docs/packaging.md:发行说明。

常用命令

cargo check
cargo check --features native-vulkan-renderer --bin gilder-native-vulkan
cargo check --features native-vulkan-video --bin gilder-native-vulkan
cargo test --features native-vulkan-video
cargo run --bin gilderd
cargo run --bin gilderctl -- ping
cargo run --bin gilderctl -- outputs
cargo run --bin gilder-convert -- wallpaper-engine /path/to/we/project ./out.gwpdir

Python 入口

uv run python scripts/ffmpeg_vulkan_hwdecode_matrix.py --no-build --label video-mainline-10s --duration 10 --target-fps source --display wayland-1
uv run python scripts/performance_snapshot.py --duration 10 --pid <pid>
uv run python scripts/wallpaper_engine_workshop_download.py --item-id <id>
uv run python packaging/build_dist.py

性能证据必须包含足够长的采样窗口,并保留 average_present_fpspresented_frame_countall_zero_copy_presented、dgop/smaps memory、descriptor heap telemetry 和 codec/source metadata。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors