[AI Development Lab] 【实验性重大改动】实现treeland的Vulkan合成backend
Tofloor
poster avatar
mozixun
Moderator
2026-06-20 00:27
Author

该项目由智谱GLM-5.2完成主体实现+OpenAI GPT-5.5进行后期改进

话不多说直接上图:

目前存在的问题:

  1. 可能会偶尔卡顿, 目前没挖出原因
  2. 预加载动画可能会掉帧

优势: OpenGL/Vulkan性能都有一定增强 (对, 你没听错, 我用glmark2-wayland测的)

image.png

treeland的代码分支: https://gitee.com/LFRon/treeland-fix-mirror/tree/feat-and-refactor%2Fenable-vulkan-renderer/

很多人肯定会问, 这个treeland开Vulkan是干嘛用的, 又不影响其它应用该走OpenGL的走OpenGL, 走Vulkan的走Vulkan, 我其实自己最开始也只是听着高级, 后来自己让AI查了资料, 又跟其它大佬交流了一下大概是如下 (你也可以大概理解为安卓HWUI走Vulkan) :

Wayland渲染器 (比如GNOME的mutter, KDE的Kwin, DDE和UKUI的wlroots-based渲染器) 都需要经过画面合成工作: 每个应用都走独立的OpenGL/Vulkan渲染通道实现了渲染各自的UI, 但需要一个合成器将这些画面进行合成, 而这就是Wayland渲染器职责之一, 而在不考虑DRM Pipeline的情况下, 这合成到上屏步骤仍然需要GPU实现, 因此只能走OpenGL/Vulkan这样的GPU图形绘制协议。

treeland (wlroots)默认的合成后端协议是GLES2 (即使用OpenGL ES 2.0进行画面合成渲染工作), 而我做的Vulkan即将画面合成渲染工作协议从OpenGL ES 2.0切换到了现代化的Vulkan, 因此合成性能有大幅提升, 进而让各类走OpenGL/Vulkan进行渲染的应用性能都有所提升, 这就是treeland本体切换到Vulkan的意义。

而我之所以能用AI完成, 是因为wlroots从0.19开始的Vulkan backend就较为成熟了, 到wlroots 0.20时Vulkan甚至成为了默认合成后端之一而不再实验性, 因此我的改动只要集中于让qwlroots对于wlroots的Vulkan能力完成Qt-Style的包裹, 然后在waylib里进行调用

目前我仍然在活跃测试该Vulkan backend

Reply Favorite View the author
All Replies
2 / 2
To page
avatar
CharOfString
deepin
2026-07-17 14:31
#21
mozixun

xdg-desktop-portal后端的实现,wlcom没有有对接方案嘛(截图/录屏/远程通通没方案嘛)

录屏和远程应该没有,截图这里有部分:

  • wlr_screencopy_v1: 来自Wlroots,已经注册
  • wlr_export_dma-buf_v1: 导出DMA-BUF
  • kywc_capture_v1: 原版Wlcom的截屏私有协议
  • 另外,提供 org.ukui.KWin.Screenshot这一D-Bus接口

我还在想要不要给Treeland/Deepin-KWin那一套协议移植了 我懒得改GXDE截图录屏了doubt

Reply View the author
avatar
mozixun
Moderator
2026-07-17 15:20
#22
CharOfString

录屏和远程应该没有,截图这里有部分:

  • wlr_screencopy_v1: 来自Wlroots,已经注册
  • wlr_export_dma-buf_v1: 导出DMA-BUF
  • kywc_capture_v1: 原版Wlcom的截屏私有协议
  • 另外,提供 org.ukui.KWin.Screenshot这一D-Bus接口

我还在想要不要给Treeland/Deepin-KWin那一套协议移植了 我懒得改GXDE截图录屏了doubt

移植Kwin的应该可以吧, 我看wlcom也合并了很多Kwin-Style的协议

Reply View the author
2 / 2
To page