StaZhu / enable-chromium-hevc-hardware-decoding

A guide that teach you enable hardware HEVC decoding & encoding for Chrome / Edge, or build a custom version of Chromium / Electron that supports hardware & software HEVC decoding and hardware HEVC encoding.
MIT License
1.24k stars 60 forks source link

intel 核显 Iris Xe 在 Canary 107 中无法正确回放 HDR 内容 #27

Closed Ink-33 closed 2 years ago

Ink-33 commented 2 years ago

使用 Chrome 的时候偶然遇到播放HEVC HDR内容时,浏览器窗口闪烁的问题,由于我对 Chrome 和 Chromium 当前的开发情况不是很熟悉,遂来此向作者询问相关问题。

本 issue 针对 Chrome Beta/Dev/Canary 及 Chromium latest build ,本仓库 Release latest 共五个版本进行测试。


测试1

版本:版本 107.0.5286.2(正式版本)dev (64 位)

启动参数:无

Video Acceleration Information: 无HEVC支持 image

实际测试:

启动参数:--enable-features=PlatformHEVCDecoderSupport

Video Acceleration Information: HEVC硬解正确支持 image

实际测试:

测试2

版本:版本 107.0.5293.0(正式版本)canary (64 位)

有无启动参数表现均与测试一相同

测试3

版本:版本 107.0.5294.0(开发者内部版本) (64 位)

启动参数:无

Video Acceleration Information: 无HEVC支持 image

实际测试:

启动参数:--enable-features=PlatformHEVCDecoderSupport

Video Acceleration Information: 无HEVC支持 image

实际测试同无启动参数

测试4

版本:版本 106.0.5211.0(正式版本) (64 位) 本仓库 release 的 最新版

启动参数:无

Video Acceleration Information: HEVC硬解正确支持 image

实际测试:

启动参数:--enable-features=PlatformHEVCDecoderSupport

Video Acceleration Information: HEVC硬解正确支持 image

实际测试:


由于我正在使用 Chrome Beta 编写此 issue,故该通道的表现将在稍后补充。目前来看 Chrome Beta 的表现与测试4的表现较为一致

另外我留意到了这个提交 https://chromium-review.googlesource.com/c/chromium/src/+/3833477 想询问一下这项提交是否与HEVC硬解支持相关


系统基础信息:

Windows 11 Professional Insider Preview 
Build 25197.rs_prerelease.220902-1559

CPU&GPU:

12th Gen Intel(R) Core(TM) i5-12500H (16 CPUs)
Intel(R) Iris(R) Xe Graphics (驱动程序版本:30.0.101.1368)
Monitor Capabilities: HDR Supported (BT2020RGB Eotf2084Supported )
Ink-33 commented 2 years ago

已确认 Beta 通道(版本:版本 106.0.5249.30(正式版本)beta (64 位))的表现与测试4一致,不论是否使用启动参数均支持hevc硬解,且无法正确回放HDR内容

StaZhu commented 2 years ago
  1. 104-107版本Windows硬解实现基本没变,和上述webcodec的那个commit没关系,另外测Chrome Canary 107 最新版就行了,不用测其他版本,一定要加启动参数,加了打开chrome://gpu 有显示hevc main即表示成功。
  2. HDR播放导致gpu进程崩溃问题,目前看似乎都发生在Intel 12代核显上(之前b站另一个用户反馈过12900K核显崩溃问题,后面他换了个n卡独显解决了),请先尝试升级下iHD核显驱动到最新版,如果依然崩溃,请在崩溃后打开chrome://gpu 页面,并贴上日志。
StaZhu commented 2 years ago

Intel核显有暴显存的问题 (见:https://bugs.chromium.org/p/chromium/issues/detail?id=1339780)。 目前已经反馈给Intel驱动开发,但是仍然没解决,这个问题大概率又是Intel驱动的锅。 辛苦你再测试下单独只打开一个hdr视频的情况(不要直接打开测试页面,而是找到其中的一个hdr视频打开,测试下,那个页面视频太多了,对于intel核显来说,很容易暴显存)

StaZhu commented 2 years ago

另外请再确定下,系统设置是否有打开HDR,并分别测试下HDR开关切换前后,是否都有崩溃问题(遇到崩溃后请切记:先退出Chrome,再重新打开浏览器)

Ink-33 commented 2 years ago

感谢您的回复,根据您的提示我做了进一步测试,结果如下:

我个人认为可能又是intel的锅了

附加信息: GPU Internals.pdf 浏览器窗口闪烁录像

StaZhu commented 2 years ago

辛苦到crbug.com提个issue。我会@intel的朋友看看。

Ink-33 commented 2 years ago

辛苦到crbug.com提个issue。我会@intel的朋友看看。

已提交 https://bugs.chromium.org/p/chromium/issues/detail?id=1362288 英语不是很好,尽力写了

StaZhu commented 2 years ago

试一下加一下这个启动参数 --disable-gpu-driver-bug-workarounds。我找了台win11的11代intel本,发现可以复现该问题,加了启动参数后问题解决。

Ink-33 commented 2 years ago

试一下加一下这个启动参数 --disable-gpu-driver-bug-workarounds。我找了台win11的11代intel本,发现可以复现该问题,加了启动参数后问题解决。

追加--disable-gpu-driver-bug-workarounds后问题解决,可正常播放

StaZhu commented 2 years ago

试一下加一下这个启动参数 --disable-gpu-driver-bug-workarounds。我找了台win11的11代intel本,发现可以复现该问题,加了启动参数后问题解决。

追加--disable-gpu-driver-bug-workarounds后问题解决,可正常播放

已经找到问题的根源了:force_rgb10a2_overlay_support_flags 这个workaround导致的。我准备提个CL把他禁用了。

Ink-33 commented 2 years ago

试一下加一下这个启动参数 --disable-gpu-driver-bug-workarounds。我找了台win11的11代intel本,发现可以复现该问题,加了启动参数后问题解决。

追加--disable-gpu-driver-bug-workarounds后问题解决,可正常播放

已经找到问题的根源了:force_rgb10a2_overlay_support_flags 这个workaround导致的。我准备提个CL把他禁用了。

太棒了,十分感激您对这个问题的关注与付出

StaZhu commented 2 years ago

该问题修复已合入主分支,今天下午3点左右会出包 Chrome Canary v107.0.5302.0,可以去掉所有启动参数(昨天之后的版本已默认开启该功能,不用传--enable-features=PlatformHEVCDecoderSupport了)再尝试一下。

StaZhu commented 2 years ago

105和106能不能合hotfix还有待确认哈,代码都提上去了。

Ink-33 commented 2 years ago

嗯嗯我已经在gerrit看到了,感谢

puckee commented 3 weeks ago

force_rgb10a2_overlay_support_flags

不好意思挖个坟,请问有通过启动命令disable 这个WA的办法么?我想快速验证下是不是这个flag导致的问题。

StaZhu commented 3 weeks ago

Can you share a sample?