0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳解deepin 25 Preview的Treeland窗口合成器

深度操作系統(tǒng) ? 來源:深度操作系統(tǒng) ? 2025-01-23 09:22 ? 次閱讀

回顧

DDE 在 V15 時(shí)期,使用 Mutter 作為帶合成器的窗管,以及 Metacity 這種不帶合成器的窗管,一個(gè)是在高性能設(shè)備上使用,一個(gè)是為低性能設(shè)備上使用。

在 V20 時(shí)期,DDE 更換 KWin 當(dāng)窗口管理器,由于 KWin 自帶有關(guān)閉合成器的模式,所以 DDE 也放棄了 Metacity 作為備用窗管的選項(xiàng)。

痛點(diǎn)

從社區(qū)收集到的體驗(yàn)報(bào)告,絕大部分用戶不滿意在屏幕縮放上,一部分用戶不滿意在動(dòng)畫僵硬、死板、卡頓等用戶體驗(yàn)上。

在以往版本的 DDE 中,受限于 X11 的架構(gòu),無(wú)法針對(duì)不同屏幕使用不同的縮放。很多用戶可能是 1080p 的筆記本屏幕,外接一個(gè) 2K 或者 4K 的顯示器,在 X11 下,用戶只能照顧高分辨率的屏幕,犧牲低分辨率屏幕的使用,例如開啟兩倍屏幕縮放,在高分辨率下的屏幕顯示剛剛好,但低分辨率屏幕已經(jīng)無(wú)法查看任何一個(gè)正常的窗口了。

Treeland

Treeland 是 deepin 社區(qū)開發(fā)的一款基于 Wayland 協(xié)議的顯示服務(wù)器,Treeland在底層使用 wlroots 作為 Wayland 的基礎(chǔ)庫(kù),不修改 wlroots 的代碼,也就意味著可以隨時(shí)同步上游進(jìn)度,獲得新的功能與修復(fù)。上層使用 Qt,可以充分利用已有的大量 Qt 開發(fā)者,不再需要一直有專人負(fù)責(zé)特定項(xiàng)目,讓 DDE 的技術(shù)棧更加統(tǒng)一。

60b9d91c-d8ad-11ef-9310-92fbcf53809c.png

優(yōu)化

1屏幕縮放

Treeland 直接管理屏幕,支持為不同屏幕設(shè)置獨(dú)立的縮放比例,從而確保高分辨率和普通分辨率的屏幕可以完美共存。通過擴(kuò)展協(xié)議,Treeland 還支持浮點(diǎn)數(shù)縮放比例(如 1.25 或 1.5),讓各種分辨率下的顯示效果都能得到良好支持。

當(dāng)窗口在不同屏幕間移動(dòng)時(shí),Treeland 會(huì)實(shí)時(shí)根據(jù)窗口所在位置調(diào)整其縮放比例。當(dāng)窗口跨越兩個(gè)屏幕時(shí),系統(tǒng)會(huì)按照各自的縮放比例分別渲染窗口的不同部分,保證顯示流暢且過渡自然。這種設(shè)計(jì)讓用戶在多屏工作時(shí)始終獲得清晰、易用的界面體驗(yàn)。

2復(fù)制模式

在 X11 下,復(fù)制模式是通過將兩個(gè)屏幕設(shè)置為相同分辨率并重疊坐標(biāo)來實(shí)現(xiàn)的。然而,這種方法存在以下顯著劣勢(shì):

重復(fù)渲染

X11 需要為兩個(gè)屏幕分別渲染相同的畫面,這種資源利用方式非常低效。相比之下,Treeland 可以在 DRM 層面直接將同一份畫面數(shù)據(jù)發(fā)送到多個(gè)屏幕,避免重復(fù)渲染,從而大幅降低 GPU 負(fù)載,提升性能。

畫面壓縮與變形

當(dāng)兩個(gè)屏幕分辨率差異較大時(shí),X11 會(huì)強(qiáng)制調(diào)整分辨率以保持一致,導(dǎo)致畫面壓縮或變形。Treeland 則采用原始分辨率輸出,通過在屏幕上下或左右留出空白區(qū)域(letterboxing/pillarboxing)的方式保持畫面比例,有效避免畫面失真,優(yōu)化復(fù)制模式下的顯示效果。

增強(qiáng)的視覺效果

Treeland 不僅保持畫面比例,還能在空白區(qū)域(如上下或左右空隙)繪制額外內(nèi)容,比如模糊處理后的桌面壁紙。這種設(shè)計(jì)既提升了美觀性,又改善了用戶體驗(yàn),使復(fù)制模式更加精致自然。

總的來說,Treeland 的實(shí)現(xiàn)方案在性能、畫面質(zhì)量和用戶體驗(yàn)等方面都顯著優(yōu)于傳統(tǒng)的 X11 復(fù)制模式,為多屏應(yīng)用場(chǎng)景帶來了重要優(yōu)化。

3窗口效果

Treeland 使用 QtQuick 作為渲染層,然而 QtQuick 自帶的部分組件性能并不太好,以下是其針對(duì) QtQuick 自帶組件性能問題的改進(jìn)措施與實(shí)現(xiàn)細(xì)節(jié)。

圓角處理優(yōu)化

QtQuick 的 Rectangle 組件支持圓角效果,但受限于只能同時(shí)對(duì)四個(gè)角進(jìn)行操作,且性能存在一定瓶頸。Treeland 為了解決這一問題,實(shí)現(xiàn)了自定義的圓角裁剪控件:

異形窗口支持:相比 QtQuick 原生 Rectangle 的四角統(tǒng)一裁剪,Treeland 的自定義控件支持不規(guī)則圓角設(shè)計(jì)(如 DTK 的異形窗口效果),大幅提升了界面靈活性。

算法優(yōu)化

新的圓角造型算法使得幾何頂點(diǎn)數(shù)量減少 50%,降低了 GPU 的頂點(diǎn)處理負(fù)擔(dān);

三角細(xì)分效率提高了 100%,進(jìn)一步優(yōu)化了 GPU 渲染性能。

抗鋸齒改進(jìn):引入自研抗鋸齒算法,相比傳統(tǒng)的 4xMSAA 算法,減少了 25% 的片元著色器計(jì)算量,同時(shí)保持視覺質(zhì)量。

模糊效果重構(gòu)

QtQuick 本身對(duì)模糊效果的支持較弱,性能表現(xiàn)難以滿足復(fù)雜場(chǎng)景需求。Treeland 針對(duì)模糊效果進(jìn)行了徹底重構(gòu):

顯存訪問優(yōu)化:通過直接從顯存中讀取組件下方的圖像數(shù)據(jù),避免了多余的 CPU-GPU 數(shù)據(jù)交換,提高了整體模糊處理效率。

融合模糊算法:

將多種模糊算法(如高斯模糊和雙邊模糊)進(jìn)行融合,以實(shí)現(xiàn)更好的性能和視覺平衡;

針對(duì)動(dòng)態(tài)內(nèi)容場(chǎng)景,采用增量模糊計(jì)算方式,進(jìn)一步減少了幀間計(jì)算成本。

陰影效果優(yōu)化

QtQuick 提供了 BorderImage 組件,能通過九宮格拉伸技術(shù)為組件增加裝飾效果。但原生機(jī)制在大規(guī)模應(yīng)用時(shí)性能不足。Treeland 的改進(jìn)如下:

材質(zhì)復(fù)用:利用 ImageProvider 手動(dòng)控制陰影貼圖資源的創(chuàng)建和管理。在多個(gè)組件大小相同的情況下,共享同一份材質(zhì)資源,避免重復(fù)加載,節(jié)省顯存;

實(shí)時(shí)更新:對(duì)于動(dòng)態(tài)調(diào)整大小的窗口,Treeland 實(shí)現(xiàn)了實(shí)時(shí)更新的陰影裁剪算法,無(wú)需完全重新生成貼圖,進(jìn)一步優(yōu)化了性能;

視覺一致性:陰影的過渡效果與窗口動(dòng)畫聯(lián)動(dòng),增強(qiáng)了整體界面的一致性和流暢性。

動(dòng)畫效果改進(jìn)

Treeland 在動(dòng)畫實(shí)現(xiàn)上直接采用 QtQuick 的 State 和 Transition 機(jī)制,同時(shí)結(jié)合自定義優(yōu)化,實(shí)現(xiàn)了流暢的界面動(dòng)態(tài)效果:

狀態(tài)驅(qū)動(dòng):

使用 State 定義組件的不同狀態(tài)(如窗口最大化、最小化、還原等);

通過 Transition 配置狀態(tài)切換時(shí)的屬性變化邏輯(如位置、大小、透明度等)。

動(dòng)畫增強(qiáng):

借助 QtQuick 動(dòng)畫組件(如 NumberAnimation 和 PropertyAnimation),實(shí)現(xiàn)了高幀率的動(dòng)畫過渡;

自適應(yīng)動(dòng)畫曲線,根據(jù)窗口的大小和目標(biāo)狀態(tài)調(diào)整動(dòng)畫時(shí)長(zhǎng),提供更貼合用戶直覺的交互體驗(yàn)。

通過以上優(yōu)化,Treeland 不僅顯著提升了組件的渲染效率,還在視覺效果和用戶體驗(yàn)上實(shí)現(xiàn)了跨越式進(jìn)步。具體表現(xiàn)為:

GPU 性能提升:相比 QtQuick 原生組件,Treeland 的渲染性能整體提高了;

資源利用率優(yōu)化:通過顯存訪問優(yōu)化和材質(zhì)復(fù)用技術(shù),大幅降低了內(nèi)存和顯存占用,為低性能設(shè)備也帶來了良好的兼容性。

4截圖錄屏

Treeland 提供了高效的快速區(qū)域選擇功能,支持吸附窗口以自動(dòng)確定選區(qū)邊界,使操作更加直觀便捷。系統(tǒng)監(jiān)視器可通過該接口快速獲取特定窗口的相關(guān)信息,簡(jiǎn)化信息提取的流程。

此外,Treeland 通過引入 DMA Buffer 技術(shù),大幅提升了數(shù)據(jù)復(fù)制的效率,支持跨屏幕截圖功能,無(wú)需客戶端處理復(fù)雜的窗口邏輯。為保護(hù)用戶隱私,Treeland 對(duì)截圖和錄屏返回的信息進(jìn)行嚴(yán)格管控,自動(dòng)抹除窗口的敏感信息,杜絕隱私泄露的風(fēng)險(xiǎn)。

在錄屏功能方面,Treeland對(duì)錄屏?xí)掃M(jìn)行了全面監(jiān)控,實(shí)時(shí)提醒用戶當(dāng)前處于錄屏狀態(tài),有效避免用戶在不知情的情況下泄露隱私。這種設(shè)計(jì)還彌補(bǔ)了 X11 環(huán)境下程序可直接獲取屏幕數(shù)據(jù)所導(dǎo)致的潛在隱患,顯著增強(qiáng)了系統(tǒng)的隱私保護(hù)能力。

5多用戶

Treeland 的多用戶優(yōu)化是其核心設(shè)計(jì)目標(biāo)之一。在傳統(tǒng)的 LightDM 模式下,不同用戶之間的切換依賴于 tty 層面前端程序的控制權(quán)轉(zhuǎn)移,每個(gè)用戶獨(dú)占一個(gè) tty 進(jìn)行畫面顯示。然而,這種方式存在明顯的問題:

切換延遲與閃爍

由于 tty 切換需要進(jìn)行底層 DRM 和顯卡驅(qū)動(dòng)的操作,屏幕緩沖區(qū)會(huì)被不同程序覆蓋,導(dǎo)致屏幕出現(xiàn)閃爍甚至短暫黑屏的現(xiàn)象。

資源消耗

每個(gè)用戶運(yùn)行獨(dú)立的一套進(jìn)程組,包括窗口管理器、任務(wù)欄、文件管理器等。這不僅占用大量?jī)?nèi)存,還要求每個(gè)用戶運(yùn)行獨(dú)立的鎖屏界面,額外增加了資源負(fù)擔(dān)。

信息同步難題

為維持界面的一致性,用戶切換時(shí)需要同步跨用戶的狀態(tài),這帶來了實(shí)現(xiàn)上的復(fù)雜性。

Treeland 在設(shè)計(jì)中引入了 DDM(Deepin Display Manager),通過重新定義工作流程,解決了上述問題:

集中式合成

Treeland 被獨(dú)立抽離為一個(gè)統(tǒng)一的畫面合成器,各用戶的窗口畫面都通過統(tǒng)一機(jī)制發(fā)送到 Treeland 進(jìn)行最終的合成和顯示。這種架構(gòu)徹底消除了多 tty 切換的閃爍問題。

內(nèi)存優(yōu)化

不再需要為每個(gè)用戶單獨(dú)運(yùn)行窗口管理器、鎖屏界面等進(jìn)程,大幅減少了內(nèi)存開銷。

狀態(tài)統(tǒng)一

由于所有用戶的界面由 Treeland 集中管理,切換用戶時(shí)無(wú)需進(jìn)行跨進(jìn)程的狀態(tài)同步,簡(jiǎn)化了實(shí)現(xiàn)。

即便在 LightDM 下,Treeland 仍然可以通過用戶級(jí)別的 systemd 服務(wù)正常運(yùn)行,作為一個(gè)獨(dú)立的 Wayland 合成器使用。然而,在這種模式下,Treeland 無(wú)法實(shí)現(xiàn) DDM 的多用戶優(yōu)化功能,僅具備單用戶 Wayland 合成器的基礎(chǔ)能力。

Treeland 的多用戶優(yōu)化通過集中式合成與資源整合,顯著改善了用戶切換的體驗(yàn),既提升了系統(tǒng)性能,又簡(jiǎn)化了實(shí)現(xiàn)邏輯。雖然在傳統(tǒng) LightDM 環(huán)境中無(wú)法完全發(fā)揮優(yōu)勢(shì),但其靈活的架構(gòu)設(shè)計(jì)確保了廣泛的適用性和良好的兼容性。

6手勢(shì)

Treeland 在手勢(shì)方面也有極大的進(jìn)步,以下是 Treeland 和 X11 以及原生 Wayland 協(xié)議之間的對(duì)比:

X11 的手勢(shì)事件處理

手勢(shì)事件由 libinput 生成,經(jīng)由 XInput2 轉(zhuǎn)發(fā)至 X Server。

X Server 解析事件后,依據(jù)焦點(diǎn)窗口的配置,將事件分發(fā)給客戶端應(yīng)用程序或窗口管理器(如 KWin)。

KWin 通過 XInput2 接口處理全局手勢(shì),包括:

注冊(cè)輸入管理器;

識(shí)別全局手勢(shì);

阻止手勢(shì)事件冒泡。

由于事件需在 libinput、X Server 和窗口管理器之間多次傳遞,造成較高延遲,導(dǎo)致手勢(shì)動(dòng)畫不夠流暢且跟手性差。

Wayland 的手勢(shì)事件處理

手勢(shì)事件由 libinput 直接傳遞至 Wayland 合成器,無(wú)需經(jīng)過中間轉(zhuǎn)發(fā)(如 XInput2);

合成器(如 Treeland)可直接處理手勢(shì)事件,從而提升響應(yīng)速度和復(fù)雜手勢(shì)支持能力。

Treeland 的優(yōu)化

使用 Waylib 將 libinput 輸入事件轉(zhuǎn)換為 Qt 事件;

利用 Qt 原生手勢(shì)事件支持,將窗口或動(dòng)畫組件與手勢(shì)處理器綁定,通過 QtQuick 實(shí)現(xiàn)流暢的跟手動(dòng)畫。

Wayland 采用直接事件處理機(jī)制,簡(jiǎn)化了手勢(shì)事件的傳遞路徑,大幅提升響應(yīng)速度,有效降低延遲。相比之下,X11 的復(fù)雜交互流程使手勢(shì)體驗(yàn)欠佳。Treeland 結(jié)合 Wayland 和 QtQuick 技術(shù),實(shí)現(xiàn)了更出色的手勢(shì)動(dòng)畫實(shí)時(shí)性和跟手性,帶來現(xiàn)代化的用戶體驗(yàn)。

總結(jié)

總的來說,Treeland 作為新一代的 Wayland 合成器,在多個(gè)方面都實(shí)現(xiàn)了重大突破:

通過狀態(tài)驅(qū)動(dòng)和動(dòng)畫增強(qiáng),顯著提升了視覺效果和交互體驗(yàn);

引入 DMA Buffer 和隱私保護(hù)機(jī)制,讓截圖錄屏功能更加安全高效;

創(chuàng)新性地采用 DDM 和集中式合成,優(yōu)化了多用戶切換體驗(yàn);

基于 Wayland 和 QtQuick 技術(shù),實(shí)現(xiàn)了更流暢的手勢(shì)控制系統(tǒng)。

Treeland 的創(chuàng)新不僅顯著提升了系統(tǒng)性能,為用戶帶來更現(xiàn)代化、更安全的使用體驗(yàn),更充分展現(xiàn)了其在 Linux 桌面環(huán)境中巨大的發(fā)展?jié)摿Α?/p>

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 顯示器
    +關(guān)注

    關(guān)注

    21

    文章

    5005

    瀏覽量

    140270
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9293

    瀏覽量

    85851
  • 管理器
    +關(guān)注

    關(guān)注

    0

    文章

    248

    瀏覽量

    18576

原文標(biāo)題:deepin 25 Preview丨Treeland:更快、更流暢

文章出處:【微信號(hào):linux_deepin,微信公眾號(hào):深度操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    合成器

    1、使用反饋有一種設(shè)備與振蕩器有關(guān),.稱為合成器。在一些情況下,從普通振蕩器出來的正弦波不夠完美。射頻工程師發(fā)現(xiàn)如果振蕩器與其它電路結(jié)合起來,利用反饋,可以使正弦波更完美,這就適合成器的功能:一個(gè)振
    發(fā)表于 12-06 14:06

    詳解頻率合成器高性能架構(gòu)的實(shí)現(xiàn)

    要滿足苛刻的頻率合成器要求,通常需要做到一定程度的設(shè)計(jì)靈活性?;镜逆i相環(huán)(PLL)頻率合成器能以低成本、高空間效率、低功耗封裝提供合理的頻譜純度和頻率捷變,因此它在射頻(RF)系統(tǒng)核心位置發(fā)揮作用
    發(fā)表于 07-08 06:10

    基于DDS的頻率合成器設(shè)計(jì)介紹

    直接數(shù)字頻率合成(DDS)在過去十年受到了頻率合成器設(shè)計(jì)工程師極大的歡迎,它被認(rèn)為是一種具有低相位噪聲和優(yōu)良雜散性能的靈活的頻率源,基于DDS的頻率合成器在許多應(yīng)用中能比基于鎖相環(huán)(PLL)頻率
    發(fā)表于 07-08 07:26

    如何利用FPGA設(shè)計(jì)PLL頻率合成器?

    電子技術(shù)應(yīng)用頻率合成技術(shù)是現(xiàn)代通信的重要組成部分,它是將一個(gè)高穩(wěn)定度和高準(zhǔn)確度的基準(zhǔn)頻率經(jīng)過四則運(yùn)算,產(chǎn)生同樣穩(wěn)定度和準(zhǔn)確度的任意頻率。頻率合成器是電子系統(tǒng)的心臟,是影響電子系統(tǒng)性能的關(guān)鍵因素之一
    發(fā)表于 07-30 07:55

    什么是頻率合成器

      頻率合成器是利用一個(gè)或多個(gè)基準(zhǔn)頻率,通過各種技術(shù)途徑產(chǎn)生一系列的離散頻率信號(hào)的設(shè)備。這些頻率的穩(wěn)定度和精度均和基準(zhǔn)頻率相同,而且頻率的轉(zhuǎn)換時(shí)間很短,這樣才會(huì)有效率和實(shí)用價(jià)值?! ☆l率合成器的實(shí)現(xiàn)
    發(fā)表于 08-19 19:18

    鎖相環(huán)頻率合成器是什么原理?

    頻率合成器的主要性能指標(biāo)鎖相環(huán)頻率合成器原理鎖相環(huán)頻率合成器捕捉過程的分析與仿真
    發(fā)表于 04-22 06:27

    頻率合成器,頻率合成器原理及作用是什么?

    頻率合成器,頻率合成器原理及作用是什么? 所謂的頻率合成器,就是以一個(gè)精確度、穩(wěn)定度極好的石英晶體振蕩器作為基準(zhǔn)頻率,并利用加、減
    發(fā)表于 03-23 11:04 ?1.5w次閱讀

    什么是直接式頻率合成器(DS)

    什么是直接式頻率合成器(DS) 頻率合成的歷史 頻率合成器被人們喻為眾多電子系統(tǒng)的“心臟”?,F(xiàn)代戰(zhàn)
    發(fā)表于 03-23 11:23 ?1747次閱讀

    間接式頻率合成器(IS)的定義和原理是什么?

    間接式頻率合成器(IS)的定義和原理是什么? 頻率合成的歷史 頻率合成器被人們喻為眾多電子系統(tǒng)的“心臟”?,F(xiàn)代戰(zhàn)爭(zhēng)是
    發(fā)表于 03-23 11:31 ?2396次閱讀

    單環(huán)鎖相頻率合成器,單環(huán)鎖相頻率合成器是什么意思

    單環(huán)鎖相頻率合成器,單環(huán)鎖相頻率合成器是什么意思 頻率合成的歷史 頻率合成器被人們喻為眾多電子系統(tǒng)的“心臟”?,F(xiàn)代戰(zhàn)爭(zhēng)是
    發(fā)表于 03-23 11:36 ?1047次閱讀

    集成鎖相環(huán)頻率合成器,什么是集成鎖相環(huán)頻率合成器

    集成鎖相環(huán)頻率合成器,什么是集成鎖相環(huán)頻率合成器 頻率合成的歷史 頻率合成器被人們喻為眾多電子系統(tǒng)
    發(fā)表于 03-23 11:45 ?828次閱讀

    AD9832:25 MHz直接數(shù)字合成器,波形發(fā)生器數(shù)據(jù)表

    AD9832:25 MHz直接數(shù)字合成器,波形發(fā)生器數(shù)據(jù)表
    發(fā)表于 05-08 21:02 ?16次下載
    AD9832:<b class='flag-5'>25</b> MHz直接數(shù)字<b class='flag-5'>合成器</b>,波形發(fā)生器數(shù)據(jù)表

    pll頻率合成器工作原理與pll頻率合成器的原理圖解釋

    pll頻率合成器工作原理與pll頻率合成器的原理圖解釋 我們要搞清楚pll頻率合成器工作原理與pll頻率合成器的原理圖就要先搞清楚pll和頻率合成器
    的頭像 發(fā)表于 02-24 18:19 ?9762次閱讀
    pll頻率<b class='flag-5'>合成器</b>工作原理與pll頻率<b class='flag-5'>合成器</b>的原理圖解釋

    Arduino合成器

    電子發(fā)燒友網(wǎng)站提供《Arduino合成器.zip》資料免費(fèi)下載
    發(fā)表于 06-29 10:04 ?1次下載
    Arduino<b class='flag-5'>合成器</b>

    詳解deepin 25 Preview的磐石系統(tǒng)

    deepin 25 Preview 帶來了全新的“磐石系統(tǒng)”,從系統(tǒng)底層到日常使用,全方位提升穩(wěn)定性和安全性。
    的頭像 發(fā)表于 01-22 09:44 ?81次閱讀