![如何强制 Chrome 使用集成 GPU 进行解码?](https://linux22.com/image/1560054/%E5%A6%82%E4%BD%95%E5%BC%BA%E5%88%B6%20Chrome%20%E4%BD%BF%E7%94%A8%E9%9B%86%E6%88%90%20GPU%20%E8%BF%9B%E8%A1%8C%E8%A7%A3%E7%A0%81%EF%BC%9F.png)
我希望 Chrome 利用 iGPU(i7-8700k 上的 GT630)进行视频解码,尤其是 YouTube 上的 VP9 解码。我的独立 GPU 是 GTX970,无法解码 VP9。目前,VP9 在我的系统上是软件解码的,这给 CPU 带来负担,偶尔会跳帧。
系统 (Windows 10) 检测到两个 GPU:GT630 作为 GPU0,GTX970 作为 GPU1。我使用 2 个屏幕。我不在乎它们需要连接到哪里(970 或主板),只要 Chrome 使用 iGPU 并且我可以继续使用 Nvidia 进行游戏即可。其中一个屏幕是 144Hz。主板是华硕 ROG Hero。
我尝试过不同的设置,但似乎没有什么能按预期工作,通常人们会寻找完全相反的问题的解决方案......
更新(命令开关):
使用--gpu-active-vendor-id=0x8086 --gpu-active-device-id=0x3E92
或--gpu-vendor-id=0x8086 --gpu-device-id=0x3E92
或运行 chrome--gpu-testing-vendor-id=0x8086 --gpu-testing-device-id=0x3E92
会导致:
GPU0 供应商 = 0x10de,设备 = 0x13c2积极的
GPU1 供应商 = 0x8086,设备 = 0x3e92
GL_RENDERER ANGLE (NVIDIA GeForce GTX 970 Direct3D11 vs_5_0 ps_5_0)`
Vivaldi 浏览器似乎接受,--gpu-testing-vendor-id=0x8086 --gpu-testing-device-id=0x3E92
其结果是:
GPU0 供应商 = 0x8086,设备 = 0x3e92积极的
GL_RENDERER ANGLE(NVIDIA GeForce GTX 970 Direct3D11 vs_5_0 ps_5_0)`
但是它仍然使用 Nvidia 作为渲染器并且不使用 GT630 igfx。
目前唯一有效的方法是在设备管理器中禁用 Nvidia 卡,启动 Chrome,然后重新启用 Nvidia 卡。当启动 Chrome 时,如果系统中没有独立显卡,它会以以下配置运行,并且它是唯一使用 GT630 硬件解码的浏览器:
GPU0 供应商 = 0x8086,设备 = 0x3e92积极的
GPU1 供应商 = 0x10de,设备 = 0x13c2
GL_RENDERER ANGLE(英特尔 (R) UHD 显卡 630 Direct3D11 vs_5_0 ps_5_0)
答案1
答案2
如果您希望自动执行禁用 Nvidia 适配器、启动 Chrome 并重新启用适配器的任务,您可以使用批处理脚本(.bat 文件),并将其作为图标放在桌面上。
使用 Microsoft 命令行工具 开发控制台:
devcon.exe disable "NVIDIA GeForce GTX 970"
start "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
timeout 5
devcon.exe enable "NVIDIA GeForce GTX 970"
检查设备管理器,显示适配器部分,上述适配器的名称是否正确。
答案3
花了几个小时寻找使用 Windows 10 2018 年 10 月更新的解决方案。截至目前,使用 Unrul3r 提供的说明,我已经能够成功在由 iGPU 驱动的 Chrome 中启用硬件 VP9 解码。
AMD Radeon R9-290 dGPU -> 通过 DisplayPort 连接到 3840x2160 (4K) 主显示器。
配备 UHD 630 iGPU 的 Intel Core i5-8400 -> 通过主板 HDMI 连接到 1920x1080 辅助显示器。
(截图链接)这是您想要在 chrome://gpu 中看到的内容,以验证一切是否正常:
现在,这里是关于如何使其正常工作的快速演练。
设置要求
- 主监视器和辅监视器
- 至少有一台显示器必须物理连接到主板上的 iGPU 输出
- 将主显示器和其他显示器连接到你的 dGPU
一步步
- 进入 BIOS 并确保 iGPU 设置为“已启用“(不是“自动”)。检查确保您的 dGPU 仍设置为第一个启用。保存并重新启动。
- 启动 Windows。由于 iGPU 现已启用并正在使用,因此它应该会自动下载并安装英特尔驱动程序。我个人从英特尔获取了 UHD 630 的完整驱动程序包并手动安装。
- iGPU 驱动程序安装完成后重新启动。
- 返回 Windows 后,打开显示设置如果您的设置发生了变化,请调整多个显示设置和定位。
- 在“显示设置”窗口底部附近,点击图形设置. 将下拉菜单保留在经典应用程序,然后点击浏览并找到您想要强制到 iGPU 的程序的可执行文件。
- 添加后,点击新列表,选择选项,然后选择节能始终强制 iGPU 处理该应用程序的渲染。
好了,我们开始测试吧!这是 Unigine Superposition 基准测试的 8K YouTube 视频现在显示 CPU 使用率约为 2-3%,丢帧率小于 1%(视觉上非常流畅,没有卡顿)。相比之下,如果没有硬件解码器,CPU 使用率将达到上限,结果是画面混乱,丢帧率超过 50%,无法观看。
答案4
目前没有与 Nvidia Optimus(除已停产的 Lucid Virtu)相同的桌面版本,无法实现动态 GPU 切换。为了在 Chrome 中使用 Intel IGP 进行硬件加速,您必须将显示器连接到 Intel 端口并将其设置为主显示屏在设置中(同时允许使用 Nvidia 进行附加显示)。
然而,如果你的目标是同时在一个屏幕上用 Nvidia 玩游戏,在另一个屏幕上用 Intel 播放 YouTube,那你就没那么幸运了,因为游戏也是从主显示屏(现在由英特尔渲染)。
如果你一次只用一台显示器执行一项操作,请尝试将其连接到 Intel 和 Nvidia,然后切换主显示屏和面板输入源作为解决方法。