X11
英特爾顯卡的“TearFree”有什麼缺點?
英特爾顯卡有一個選項可以在 X11 下禁用螢幕撕裂。可以通過使用這樣的節配置 xorg 來啟用它,
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "TearFree" "true" EndSection
為什麼預設情況下不啟用此功能?TearFree 選項的缺點是什麼?
這在手冊
intel
頁中得到解決:禁用或啟用 TearFree 更新。此選項強制 X 在更新實際顯示之前執行所有渲染到備份緩衝區。它需要與幀緩衝區大小相同的額外記憶體分配、偶爾的額外副本,並且需要損壞跟踪。因此啟用 TearFree 需要更多記憶體且速度較慢(吞吐量降低)並引入少量輸出延遲,但不應影響輸入延遲。但是,螢幕的更新隨後與顯示器的垂直刷新同步執行,以便在顯示器開始刷新之前完成整個更新。那是只有一幀是可見的,防止兩個可見且不同的幀之間出現難看的撕裂。請注意,這複製了合成管理器應該做的事情,然而,TearFree 會將合成器更新(以及全屏遊戲的更新)直接重定向到掃描輸出,因此在合成情況下不會產生額外的成本。另請注意,並非所有合成管理器都防止撕裂,如果輸出旋轉,在沒有啟用 TearFree 的情況下仍然會出現撕裂。
總而言之,缺點是它需要更多記憶體,並且會降低吞吐量並增加延遲(除非已經有合成器或 vblank 同步的全屏顯示)。