长时间盯着显示器?灰度滤镜或暖色色罩能大幅降低眼疲劳和屏幕干扰。但 Ubuntu 和 GNOME Shell 用户在使用 Tint All、Desaturate All 或 GNOME Bedtime Mode 这类扩展时,都会撞上一个恼人的 Bug:只要打开 Telegram Desktop,点进频道或视频,颜色滤镜就会瞬间掉落,切到其他窗口才恢复,焦点回到 Telegram 又再次消失。
查看日志会发现满满的 GPU 帧缓冲区错误:gnome-shell: Failed to create offscreen effect framebuffer。多年以来,社区都认为这是 Mutter/Wayland 无法修复的顽疾。
![]()
传统扩展是在 Main.uiGroup 上直接叠加 Clutter.DesaturateEffect 和 Clutter.BrightnessContrastEffect,每帧强制分配两个全屏 GPU 纹理。一旦 Telegram 这类重度渲染窗口触发 pixel format 或尺寸约束,Mutter 立即抛错并回退效果。这就是滤镜“秒掉”的根源。
我开发了 Pasynkov Tint——一个高性能、GPU 加速的 GNOME 色彩罩与灰度扩展,仅用 1 个 shader 参数即可在 compositor 层面完成色调映射,彻底绕过 Clutter.OffscreenEffect 的双重纹理陷阱。经实测,无论 Telegram、VS Code 还是浏览器硬解视频,滤镜从未掉过一帧。如果你也在寻找永不失效的 Tint All 替代品,这个方案值得一试。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.