最近安装 Linux 后,发现系统自带视频播放器和 FireFox 都能硬解流畅播放 8K HEVC 视频,但 Chrome 播放不了任何 HEVC 视频,打开图片比较多的网页还会出现卡顿。另外 Blender 开不了 GPU 加速。
于是求助 Gemini 3 Pro。Gemini 让我通过用 radeontop 检测 GPU 使用率,用 vulkan-tools 查看 GPU 信息,运行 vkcube 等方式,检查 GPU 驱动有没有装好。我照做,输出的内容符合 Gemini 所说的“驱动已经完美安装”的结果。
同时查了 vainfo 和 Chrome 的 GPU 信息,都显示 HEVC 硬件加速解码是支持的。
于是我再把 Chrome 的 GPU 信息、播放 HEVC 视频的错误日志等发给 Gemini。Gemini 让我尝试了更换 ANGLE 后端、关闭沙箱、启用 Web GPU 等等的好多种方法,结果都没用。
我感觉不对劲,结合 Blender 开不了硬件加速,认为还是 GPU 驱动有问题,但 Gemini 只是让我用 apt 检查更新,一直没提到过让我去官网下载 GPU 驱动。
于是我问 Gemini:
我是否需要自行去 AMD 网站下载 GPU 驱动?
Gemini 回答:
自行去 AMD 官网下载驱动:千万不要!(Big No)
Linux 与 Windows 不同,对于 AMD 显卡,内核自带的开源驱动才是性能最好、兼容性最强的选择。
严禁手动安装 AMD 官网驱动,系统自带的已是最佳状态。
我的质疑:
你能详细说说,为什么在 Linux 上不要为 AMD 显卡下载 AMD 官网提供的驱动吗?
Gemini 的“循循善诱”:
在 Windows 上,去官网下载驱动是为了获取“最新、最强、官方认证”的版本;但在 Linux(尤其是针对 AMD 显卡)上,去官网下载驱动往往意味着降级、破坏系统稳定性以及无穷无尽的黑屏噩梦。
您的系统出厂即满配。您去官网下载的驱动,实际上试图用一套私有的、更新缓慢的、针对特定企业环境的组件,去覆盖系统自带的开源的、更新迅速的、针对最新硬件优化的组件。
在 Linux 游戏和消费级 AI 领域,社区维护的开源驱动(Mesa)通常比 AMD 官方的私有驱动(AMDGPU-PRO)更强。
AMDVLK (官网驱动): 代码与 Windows 版共享。虽然理论上更“官方”,但在 Linux 桌面环境下的帧率和稳定性往往不如社区维护的开源驱动。
AMD 官网提供的安装脚本 (amdgpu-install) 极其强力。它经常会强制降级系统中的关键库(如 libdrm, glibc 相关组件)以匹配它自己的版本。这会导致:系统的包管理器(APT)报错,提示依赖冲突。您以后想运行普通的 sudo apt upgrade 更新系统时,会被卡住。Steam 或其他依赖系统原生图形库的软件无法启动。
什么时候才需要官网驱动?只有在一种极端情况下,我们才会建议安装官网驱动的特定组件(而不是全套):您必须运行某些主要针对工作站设计的、依赖老旧 OpenCL 闭源实现的工业软件(如 DaVinci Resolve 的某些旧版本,或者某些从未适配 Mesa 的科学计算软件)。但即使那样,我们也不下载驱动包,而是去下载提取版的 OpenCL 库,小心翼翼地通过 LD_LIBRARY_PATH 挂载,绝对不动系统内核。
一句话:在 Linux 的世界里,除了 NVIDIA(因为它闭源),对于 Intel 和 AMD,最好的驱动就在系统更新里,而不是在浏览器里。
Gemini 不让我装 AMD 官方驱动,但他又解决不了 Chrome 和 Blender 的问题。Linux 的显卡驱动问题我也不太了解,不知道 Gemini 说的是真是假。
没招了,问题必须解决,还是装官方显卡驱动试试吧。创建系统快照,按 AMD 网站的步骤安装驱动。
重启电脑,打开 Chrome 和 Blender 验证,问题直接解决了。
从 https://caniuse.com/hevc 来看,如果vaapi正常,应该支持硬解才对。
安装vaapi驱动:
sudo apt install libva2 mesa-va-drivers
查看vaapi支持的格式:
sudo apt install vainfo
vainfo
@老虎会游泳,外面看到篇文章:《如何在OEM厂商封禁的情况下为2025款搭载Intel Arc显卡的戴尔/惠普笔记本启用HEVC硬解支持》
可能有用,但没测试过。ds 翻译文章如下:
如何在固件禁用HEVC(H.265)硬件解码的戴尔和惠普笔记本电脑上启用它
许多现代戴尔和惠普笔记本电脑配备了在硬件上完全支持HEVC(H.265)的英特尔GPU——然而Windows却报告不支持HEVC。安装微软HEVC编解码器不起作用。驱动程序已是最新。Linux系统可以正常使用。Windows不行。
这不是驱动程序的错误。
这是通过ACPI表实现的、有意的固件门控机制。
本文将详细解释如何在Windows上,使用安全且可逆的ACPI覆盖,来识别、绕过并验证这一门控机制。
⚠️ 请首先阅读(重要)
- 必须禁用安全启动
- 必须启用Windows测试签名模式
- 在安全启动开启的情况下,此方法无法永久生效
- 此操作不会刷写或修改BIOS固件
- 你是在绕过SKU策略,而非硬件限制
如果安全启动对你来说是强制要求,请停止阅读。
为何在有能力支持的系统上HEVC会被禁用
OEM厂商通过ACPI固件表来控制功能暴露。
在受影响的戴尔/惠普系统上:
- GPU硬件支持HEVC
- ACPI报告了一个受限制的GPU类别
- Windows信任ACPI并隐藏HEVC解码/编码功能
常见的ACPI门控方法:
GFX0.GLIDCLID,GDCK,POVR- 限制位(如
0x80000000)这是故意的产品细分策略。
高级概述
我们将要做的是:
- 转储ACPI表
- 将其反编译为文本
- 识别GPU门控方法
- 用最简化的SSDT覆盖它
- 在Windows中编译并加载它
- 重启并验证HEVC工作
不会刷写任何内容。不会向固件写入任何永久性修改。
步骤 1 — 转储ACPI表
下载英特尔ACPICA工具(包含
acpidump和iasl)。在存放该工具的文件夹中,以管理员身份打开PowerShell:
acpidump.exe -b你将得到:
DSDT.datSSDT*.dat步骤 2 — 反编译ACPI表
将二进制ACPI转换为文本:
iasl.exe -d *.dat你现在拥有:
dsdt.dslssdt*.dsl步骤 3 — 查找GPU门控逻辑
搜索所有DSL文件:
Select-String -Path *.dsl -Pattern 'GFX0','IGPU','GLID','CLID','GDCK','POVR'你需要寻找设置限制类别的逻辑。
典型示例:
Method (GLID, 1) { CLID = Arg0 CLID |= 0x80000000 Return (One) }那个限制位正是隐藏HEVC的原因。
步骤 4 — 创建覆盖用的SSDT
创建一个名为
SSDT-HEVC.dsl的新文件。如果你的系统使用
PCI0而不是PC00,请调整路径。DefinitionBlock ("", "SSDT", 2, "HACK", "HEVC", 0) { External (\_SB.PC00.GFX0, DeviceObj) External (\_SB.PC00.GFX0.CLID, IntObj) Scope (\_SB.PC00.GFX0) { Method (GLID, 1, NotSerialized) { CLID = 0x03 Return (Zero) } } }此代码仅覆盖门控方法。
步骤 5 — 编译SSDT
编译它:
iasl.exe -tc SSDT-HEVC.dsl重命名输出文件:
Rename-Item SSDT-HEVC.aml acpitabl.dat步骤 6 — 安装覆盖文件
将其复制到Windows系统目录:
Copy-Item acpitabl.dat C:\Windows\System32\acpitabl.dat步骤 7 — 引导配置(必需)
在BIOS中禁用安全启动。
启用测试签名模式:
bcdedit /set testsigning on禁用快速启动:
powercfg /hibernate off步骤 8 — 重启
现在Windows将加载你的ACPI覆盖。
步骤 9 — 验证HEVC是否正常工作
使用DxDiag(权威方法)
运行:
dxdiag查看:
- HEVC decode
- HEVC Main / Main10
- D3D12 HEVC encode profiles
使用Windows Media Player / 电影和电视应用
播放一个HEVC文件:
- CPU 占用率 ~10–25%
- 播放流畅
- 无丢帧
如果硬件解码可用,这些应用总是会使用它。
关于Chrome的重要说明
即使在操作系统层面已启用,Chrome默认也可能不使用HEVC。
访问:
chrome://flags启用:
- Hardware-accelerated video decode
- Use hardware video decoder
- ANGLE backend → D3D11
重启Chrome。
如何正确验证Chrome状态
不要仅仅依赖
chrome://gpu。应该:
播放一个HEVC文件。
打开:
chrome://media-internals查看是否出现:
- MediaFoundationVideoDecoder
- D3D11VideoDecoder
Chrome WebRTC的HEVC测试页面可能仍然失败——这是Chrome的策略问题。
关于VLC的说明
VLC默认使用软件解码。
要强制启用硬件HEVC解码:
- 首选项 → 全部
- 输入 / 编解码器 → 硬件解码 → Direct3D11
- 视频 → 输出 → Direct3D11
- 重启VLC
安全权衡
- 安全启动必须保持关闭状态。
- 测试签名模式必须保持开启状态。
- 在安全启动下,ACPI覆盖会被阻止。
- BitLocker可以恢复,但未来的引导更改可能会触发恢复。
这是Windows的一个设计限制。
何时你需要重做此操作
- BIOS更新更改了ACPI表。
- 重新启用了安全启动。
- 禁用了测试签名模式。
Windows更新不会移除此覆盖。
此方法不会做的事
- 不会刷写BIOS。
- 不会绕过DRM。
- 不会启用不支持的硬件。
它仅仅移除了人为的固件策略限制。
最后总结
如果你的戴尔或惠普笔记本电脑拥有支持HEVC的英特尔GPU,但Windows却将其隐藏,此方法:
- 解释了原因
- 展示了如何修复
- 恢复完整的HEVC硬件解码和编码功能
- 是可逆且透明的
在OEM厂商停止通过固件门控HEVC功能之前,这是在Windows上恢复它的唯一可靠方法。
@tasy5kg,你平常使用 Blender 搞设计的嘛
怎么 Linux 也要装闭源驱动,才能浏览器硬解 HEVC。。
那之前别人说的也不太准呐。。(如下俩图)
以后电脑硬解 HEVC 真是越来越成问题了,
哪天闭源驱动验证下 BIOS 有无禁用 HEVC 硬解,就彻底无了。。