Mesa 22.X引入了修改使得硬件解码支持成为可选特性(为了规避法律风险)。Fedora 37 升级到了 Mesa 22.X 并开启了解码支持,但随后 Fedora 维护者移除了对应的解码支持。这一问题在 Reddit 上有讨论。
这一改动应该只影响AMD显卡用户 。Intel开源驱动有独立的用户空间驱动库,NVIDIA无论是官方开源还是闭源驱动都使用自己的用户空间驱动库。
此改动可能会backport回 Fedora 36。避免更新到 Fedora 37 可能不是对策。
更新:openSUSE 的法律团队也已经要求开发者禁用此解码器支持,预计此更新将进入 Factory 和 Tumbleweed。(Leap 的情况暂不清楚)
注意:这篇文章的作者是 Calanthe Demetria,不是 ImBearChild。而且这篇文章所述的都是短期的解决方案,长期的解决方案还有待开发者们做出进一步决定。
影响范围
Mesa 22.X的改动会同时影响Flatpak和Fedora环境。
Flatpak环境
Flathub 现阶段会受到影响,Mesa 升级到 22.X
之后并没有重新添加解码支持(2022-09-30:此更新还未推送到 22.08),使得Flathub的Mesa同样失去硬件解码支持,但这与发行版独立,即所有 Flatpak 用户都会受到影响。
对于Flatpak,如果 org.freedesktop.Platform.GL.default
的版本号为 21.08
或以下,则不受到此问题影响。你可以通过 flatpak list | grep Mesa
查询自己当前Flatpak的Mesa驱动版本。
用户
对于Flathub应用程序的用户,如果你使用的某一程序受到影响(例如Firefox无法使用硬件解码、OBS Studio无法录屏),可以尝试降级它。
下述使用org.gimp.GIMP作为示例。
列出所有commit:
flatpak remote-info --log flathub org.gimp.GIMP
降级到特定commit:
flatpak update --commit=ec07ad6c54e803d1428e5580426a41315e50a14376af033458e7a65bfb2b64f0 org.gimp.GIMP
然后阻止它进行自动更新:
flatpak mask org.gimp.GIMP
如果以后想要让它重新能够自动更新:
flatpak mask --remove org.gimp.GIMP
应用程序维护者
对于Flathub应用程序的维护者,你暂时能做的就是禁用 flathubbot
的自动合并功能(此功能默认关闭,如果你没有开启过就不需要动它):
flathub.json
"automerge-flathubbot-prs": false
并且暂时不要升级 org.freedesktop.Platform
到 22.08
,直到上游(Mesa)或者Flathub解决了解码支持问题。
Fedora 主机环境
COPR
你可以暂时使用其它用户在 COPR 上构建的 Mesa 作为替代:
https://copr.fedorainfracloud.org/coprs/che/mesa/
注意:使用 COPR 不保证可靠性,COPR 上的软件不是 Fedora 官方维护者提供的。软件最终质量取决于打包者水平。请自行检验构建脚本后再决定是否使用。
容器
你可以暂时使用其它不受影响的发行版容器空间(openSUSE Leap、Ubuntu、Arch)。
sudo dnf install distrobox
distrobox-create --image registry.opensuse.org/opensuse/leap:latest
distrobox-enter leap-latest
你需要在容器空间内安装Mesa和解码器:
sudo zypper in Mesa Mesa-dri Mesa-drivers opi
sudo opi codecs
这样就能在容器空间内继续获得硬件解码支持。例如Firefox:
sudo zypper in firefox
distrobox-export --app firefox
主机环境的启动器会多出来一个容器环境的Firefox。