惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
Stack Overflow Blog
Stack Overflow Blog
月光博客
月光博客
T
Threat Research - Cisco Blogs
小众软件
小众软件
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Tailwind CSS Blog
Cisco Talos Blog
Cisco Talos Blog
V
V2EX
博客园 - 【当耐特】
C
Cybersecurity and Infrastructure Security Agency CISA
Hugging Face - Blog
Hugging Face - Blog
The Cloudflare Blog
The Last Watchdog
The Last Watchdog
Simon Willison's Weblog
Simon Willison's Weblog
T
Threatpost
S
Secure Thoughts
O
OpenAI News
P
Proofpoint News Feed
S
SegmentFault 最新的问题
Forbes - Security
Forbes - Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Application and Cybersecurity Blog
Application and Cybersecurity Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
Scott Helme
Scott Helme
T
Tenable Blog
A
Arctic Wolf
L
LINUX DO - 热门话题
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
Visual Studio Blog
Hacker News: Ask HN
Hacker News: Ask HN
Hacker News - Newest:
Hacker News - Newest: "LLM"
腾讯CDC
博客园 - Franky
WordPress大学
WordPress大学
Know Your Adversary
Know Your Adversary
博客园_首页
雷峰网
雷峰网
IT之家
IT之家
PCI Perspectives
PCI Perspectives
L
LINUX DO - 最新话题
H
Heimdal Security Blog

sjdhome

sjdhome.com 2025 年度总结 | sjdhome 我的 2024 年 | sjdhome 我的 2024 年 | sjdhome sjdhome.com 制度与利益 | sjdhome 解决 Windows PPPoE 连接在系统睡眠后消失 | sjdhome 解决 Windows PPPoE 连接在系统睡眠后消失 | sjdhome 解决 Next.js build 完成后卡住的问题 | sjdhome 解决 Next.js build 完成后卡住的问题 | sjdhome 实现 WSL 2 开机免登录自动启动 | sjdhome 实现 WSL 2 开机免登录自动启动 | sjdhome 我的 2023 年 | sjdhome 我的 2023 年 | sjdhome 在 Windows 上启用 IP 转发 在 Windows 上启用 IP 转发 迁移到 Next.js | sjdhome 迁移到 Next.js | sjdhome 评论功能正式启用 | sjdhome 评论功能正式启用 | sjdhome 解决 GNOME 桌面环境下 Chromium 系浏览器全屏时有横线闪烁 解决修改 Bash Prompt 后翻阅历史命令时显示错位 | sjdhome 解决修改 Bash Prompt 后翻阅历史命令时显示错位 | sjdhome 如何手动安装 rust-src | sjdhome 如何手动安装 rust-src | sjdhome 成瘾游戏的属性 | sjdhome 成瘾游戏的属性 | sjdhome 《可塑性记忆》观后感 | sjdhome 时光荏苒的失落 | sjdhome 《可塑性记忆》观后感 | sjdhome 时光荏苒的失落 | sjdhome H3C Magic RC3000 的相关信息 | sjdhome H3C Magic RC3000 的相关信息 | sjdhome Hello world | sjdhome Hello world | sjdhome
解决 GNOME 桌面环境下 Chromium 系浏览器全屏时有横线闪烁
sjdhome · 2023-08-09 · via sjdhome

大前提

本文假设你使用的是 GNOME (Wayland),且使用 Xwayland 运行 Chromium 系浏览器。

TL;DR

安装 gnome-shell-extension-disable-unredirect 这个 GNOME 插件并启用。如果从 AUR 安装可能需要自己改一下兼容 GNOME 版本号。

分析

经过了数年的努力,Linux 桌面在 Wayland 的环境下,大部分软件都可以正常使用了。Chromium 系浏览器虽然可以通过设 --ozone-platform-hint=auto 来启用 Native Wayland,但硬件加速就没法工作了,大概是因为我用的是 NVIDIA 卡的缘故。

默认情况下,Chromium 系浏览器都是运行在 Xwayland 下,且启用硬件加速。在播放 YouTube 或哔哩哔哩视频时,如果不全屏,视频可以正常播放。如果进入全屏模式,过几秒画面上就会出现闪烁的横线。

互联网上的大部分教程都是让关闭硬件加速或者传入各种奇奇怪怪的 Chromium flags。关闭硬件加速是治标不治本的行为,对于日常网页浏览影响不大,但是会显著增加 CPU 负担,尤其是播放 4K 视频的情况下。各种奇怪的 flags,如 --ignore-gpu-blocklist--use-gl=egl 以及 Arch Linux Wiki 上有关 Chromium 硬件加速的 flags,还有 VAAPI,测试下来基本没有效果,部分似乎有效果的 flags 都是误打误撞把硬件加速禁用了。

经过众多搜索后,我意识到这似乎是一个垂直同步问题,虽然画面上是跳动的横线,不像 Windows 下的画面撕裂是错位的样子,但应该和垂直同步有关。于是我参考了 How do I enable desktop Vsync on GNOME Wayland with NVIDIA driver?,并尝试了 gnome-shell-extension-disable-unredirect,这是一个 GNOME 扩展,问题解决了。

我的猜测是 GNOME 在浏览器全屏后不再强制对窗口进行画面转发和同步,而是由窗口自己负责,进而导致浏览器出现画面撕裂。Chromium 系浏览器在 Linux 下不会自行垂直同步的问题已经有很长时间了,但一直没有解决过。gnome-shell-extension-disable-unredirect 仅仅是强制 GNOME 继续接管全屏窗口,并没有解决垂直同步问题。

在搜索过程中还发现了 mutter-dynamic-buffering,这个包把 GNOME 混成器 Mutter 替换成开启双重或三重缓冲的版本,但这样对系统包的介入性过强,因此没有尝试。

我用的不是 GNOME!

对于其他桌面环境,解决思路应该类似,都是打开自己的桌面混成器的垂直同步或三重缓冲功能。

遗留问题

虽然在 chrome://gpu 里显示 Hardware accelerated,但播放视频时在 F12 控制台的 Media 选项卡里并没有看到调用显卡解码,依然是 FFmpegVideoDecoder 且 Hardware Decoder 为 false

参考资料