chrome是否开启硬件加速

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.

English | 简体中文

Usage

Chrome & Edge (Mac) & Chromium

Make sure version >= 107 then open directly.

What's the hardware decoding supported HEVC profile?

HEVC Main (Up to 8192x8192 pixels)

HEVC Main 10 (Up to 8192x8192 pixels)

HEVC Main Still Picture (up to 8192x8192 pixels)

HEVC Rext (partially supported, see the table below for details, up to 8192x8192 pixels)

GPU 8b 420 8b 422 8b 444 10b 420 10b 422 10b 444 12b 420 12b 422 12b 444
Apple Silicon (macOS)
Intel ICL ~ TGLx (Win) ✅[5] ✅[4]
Intel TGLx+ (Win) ✅[5] ✅[4] ✅[4] ✅[4]

✅:GPU + software support ❌:GPU not support

Note 1: Intel Macs support HEVC Rext software decoding of 8 ~ 12b 400, 420, 422, 444 contents. Apple Silicon Mac supports HEVC Rext hardware decoding of 8 ~ 10b 400, 420, 422, 444 contents, and software decoding of 12b 400, 420, 422, 444 contents on macOS 13+.

Note 2: Intel Gen10 GPUs support HEVC Rext hardware decoding of 8b 420, 8b 422, 8b 444, 10b 420, 10b 422, 10b 444 contents on Windows. Gen11+ GPUs additionally support HEVC Rext hardware decoding of 12b 420, 12b 422, 12b 444 contents.

Note 3: Although NVIDIA GPUs support HEVC Rext hardware decoding of 8 ~ 12b non-422 contents via CUVIA or NVDEC, but because they did not provide a D3D11 interface, thus Chromium will not support it in the future.

Note 4: HEVC 8b 444, 12b 422, 12b 444 support requires Chrome >= 117.0.5866.0.

Note 5: HEVC 8b 422 support requires Chrome >= 118.0.5956.0.

Note 6: To retain the original 4:2:2/4:4:4 chroma sampling, requires Chrome >= 125.0.6408.0.

What's the hardware encoding supported HEVC profile?

HEVC Main (macOS & Windows & Android, macOS up to 4096x2304 px & 120 fps, Windows up to 1920*1088 px & 30 fps, Android up to the hardware)

Note 1: You need to pass a chrome switch to enable it(--enable-features=PlatformHEVCEncoderSupportTest Page.

Note 2: Windows / Mac need to make sure Chrome version >= 109.0.5397.0,Android need to make sure Chrome version >= 117.0.5899.0

What's the OS requirement?

macOS Big Sur (11.0) and above

Windows 8 and above

Android 5.0 and above

Chrome OS (Only supports GPUs that support VAAPI interface, eg: Intel GPU)

Linux (Chrome version >= 108.0.5354.0, and only supports GPUs that support VAAPI interface, eg: Intel GPU)

What's the API supported?

Video Decode: File, Media Source Extensions, WebCodec (8Bit requires >= 107.0.5272.0, 10Bit + HEVC with Alpha requires >= 108.0.5343.0), Clearkey and Widevine L1 (HW only) Encrypted Media Extensions, WebRTC (experimental, need to use Chrome Canary passing --enable-features=PlatformHEVCEncoderSupport,WebRtcAllowH265Send,WebRtcAllowH265Receive --force-fieldtrials=WebRTC-Video-H26xPacketBuffer/Enabled to enable the feature, or use the Chromium binary provided by this repo, some useful sites here: Media CapabilitiesDemo) are supported.

Video Encode: WebCodec (Windows, macOS, and Android, when passing --enable-features=PlatformHEVCEncoderSupport) is supported.

What's the GPU requirement?

Discrete GPU

Intel DG1 and above

NVIDIA GT635, GTX645 and above

AMD RX460 and above

Integrated GPU

Intel HD4400, HD515 and above

AMD Radeon R7, Vega M and above

Apple M1, M1 Pro, M1 Max, M1 Ultra and above

Detail Table

Intel

AMD

NVIDIA

HDR Supports? (Compared with Edge / Safari / Firefox)

PQ HDR10 HDR10+ HLG DV P5 DV P8.1 DV P8.4
Chrome Mac
Chrome Win
Edge Mac
Edge Win
Safari Mac
Firefox Win[1]

On Windows platform, Chrome supports PQ, HDR10 (PQ with static metadata), and HLG. Automatic Tone-mapping will be enabled based on static metadata (if present). HDR10+ SEI dynamic metadata wil be ignored while decoding and playback will downgrade to HDR10.

On macOS platform, Chrome supports PQ, HDR10 (PQ with static metadata), HLG. In SDR / HDR / Hybrid mode, the macOS system will automatically perform EDR to ensure that HDR is displayed correctly. Chrome / Edge shared the same code thus has the same decoding ability, Safari also supports the above all HDR formats.

Note 1: Firefox >= 120 just added HEVC decoding support (Windows platform only, experimental, need to manually set media.wmf.hevc.enabled=1 to enable the feature). Based on my testing, Firefox supports HEVC Main profile while doesn't support Main10 profile (HDR contents usually encoded with Main10 profile) yet, if the bug got fixed, I will re-test and update the table later.

Dolby Vision Supports Status

There are two type of support type here:

  1. Type 1: Supports RPU dynamic metadata and Profile 5 (IPTPQc2).
  2. Type 2: Supports profiles like Profile 8/9 that has cross-c
### RK3588 HDMI Hot Plug Issue Solution For the RK3588 device, encountering issues with HDMI not recognizing hot plugging can be attributed to several factors including configuration settings within Device Tree Source (DTS), driver configurations, and specific hardware initialization routines. Addressing these problems requires a multi-faceted approach focusing on ensuring proper DTS setup, verifying kernel parameters, and potentially modifying low-level drivers. #### Verify DTS Configuration The first step involves checking the DTS file associated with your board variant. Ensuring that all necessary properties related to HDMI are correctly set is crucial. Specifically, verify entries concerning `status`, `clocks`, and any node definitions pertinent to HDMI functionality[^2]. ```bash # Example of relevant section from .dts file &hdmi { status = "okay"; clocks = <...>; }; ``` #### Kernel Parameters Adjustment Adjustments may also need to be made at the level of boot arguments passed to the Linux kernel. This includes enabling or disabling certain features through command line options which could affect how HDMI devices are detected during system startup[^1]. For instance: ```bash video=HDMI-A-1:1920x1080@60 ``` This example forces a particular resolution but similar flags exist specifically aimed at improving detection reliability under varying conditions. #### Driver Modifications In some cases, direct modifications might have to occur inside U-Boot source code especially when dealing with very early stages before full OS control takes over. Files like `dw_hdmi_qp.c` located in `/drivers/video/drm/` directory often contain critical sections responsible for initializing display controllers properly upon connection events[^4]: ```c // dw_hdmi_qp.c snippet showing potential modification area static int dw_hdmi_detect(struct drm_bridge *bridge) { struct dw_hdmi *hdmi = bridge_to_dw_hdmi(bridge); /* Custom logic here */ } ``` Implementing custom logic around this function call ensures more robust handling of connect/disconnect scenarios beyond what default implementations offer out-of-the-box. By systematically addressing each layer starting from high-level software down to lower-level firmware components, one should achieve improved stability regarding HDMI port behavior post-hotplug operations on an RK3588-based platform. --related questions-- 1. What common mistakes lead to improper DTS configurations affecting HDMI performance? 2. How do different operating systems handle HDMI connections differently on RK3588 platforms? 3. Can changes outside of u-boot impact HDMI hot-plug capabilities significantly? 4. Are there known limitations with Android versus other OSes running on RK3588 concerning multimedia interfaces?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值