Fix AV1 VA-API encoder crash on AMD/Mesa by initializing DPB for keyframes [chromium/src : main]

0 views
Skip to first unread message

Ted (Chromium) Meyer (Gerrit)

unread,
Jan 21, 2026, 9:37:11 PMJan 21
to Helmut Januschka, Eugene Zemtsov, Andres Calderon Jaramillo, James Zern, Dale Curtis, Chromium LUCI CQ, chromium...@chromium.org, chromeos-gfx-...@google.com, feature-me...@chromium.org, media-cro...@chromium.org, vaapi-...@chromium.org
Attention needed from Andres Calderon Jaramillo and Helmut Januschka

Ted (Chromium) Meyer added 7 comments

Patchset-level comments
File-level comment, Patchset 15 (Latest):
Ted (Chromium) Meyer . unresolved

I mostly have concerns over the use of default values here. I'm not sure it makes a lot of sense for different codecs' encoder delegates to handle default values differently. If I ask for a 50Kbps video in h264 vs av1, we _should_ probably get the same bitrate out of our encoders, whether or not we decide if there is a minimum.

File media/gpu/vaapi/av1_vaapi_video_encoder_delegate.cc
Line 452, Patchset 15 (Latest): if (current_params_.framerate == 0) {
Ted (Chromium) Meyer . unresolved

I'm not an expert on the encoder pipeline, but `current_params_` seems like something controlled by whatever JS call is attempting to do encoding. Does it not make sense to move default value handling to the VideoEncodeAccelerator::Config structure? Shouldn't all encoders have these same defaults, assuming they're good defaults to have? Maybe a user-supplied zero frame rate encode request _should_ fail?

Line 501, Patchset 15 (Latest):// 100 kbps is a reasonable minimum for low-resolution video.
constexpr int kMinTargetBitrateKbps = 100;
Ted (Chromium) Meyer . unresolved

As far as I am aware, webcodecs allows these encoders to be used via some JS calls (@eugene, is this correct?). This seems like a very webrtc specific set of minimum values. It's conceivable that someone might truly want video under 100Kbps, what is the reasoning for deciding this is a "reasonable" minimum? Do other encoders have this same minimum?

Line 774, Patchset 15 (Latest): // Log order_hint for AMD debugging
Ted (Chromium) Meyer . resolved

nit: Slightly unnecessary.

Line 792, Patchset 15 (Latest): // Warm-up logging for AMD/Mesa debugging (crbug.com/471780477).
Ted (Chromium) Meyer . resolved

ditto.

Line 996, Patchset 15 (Latest): // Log DPB state after update for AMD debugging
Ted (Chromium) Meyer . resolved

ditto.

Line 1333, Patchset 15 (Latest): // Log frame header parameters for AMD debugging
Ted (Chromium) Meyer . resolved

ditto.

Open in Gerrit

Related details

Attention is currently required from:
  • Andres Calderon Jaramillo
  • Helmut Januschka
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ice63b82c4158713ece09771a02998a9ab980d6c0
Gerrit-Change-Number: 7380014
Gerrit-PatchSet: 15
Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Andres Calderon Jaramillo <andr...@chromium.org>
Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
Gerrit-CC: Dale Curtis <dalec...@chromium.org>
Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
Gerrit-CC: James Zern <jz...@google.com>
Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
Gerrit-Attention: Andres Calderon Jaramillo <andr...@chromium.org>
Gerrit-Comment-Date: Thu, 22 Jan 2026 02:37:02 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Helmut Januschka (Gerrit)

unread,
Jan 22, 2026, 4:48:33 PMJan 22
to Helmut Januschka, Eugene Zemtsov, Andres Calderon Jaramillo, Ted (Chromium) Meyer, James Zern, Dale Curtis, Chromium LUCI CQ, chromium...@chromium.org, chromeos-gfx-...@google.com, feature-me...@chromium.org, media-cro...@chromium.org, vaapi-...@chromium.org
Attention needed from Andres Calderon Jaramillo and Ted (Chromium) Meyer

Helmut Januschka added 4 comments

Patchset-level comments
Ted (Chromium) Meyer . unresolved

I mostly have concerns over the use of default values here. I'm not sure it makes a lot of sense for different codecs' encoder delegates to handle default values differently. If I ask for a 50Kbps video in h264 vs av1, we _should_ probably get the same bitrate out of our encoders, whether or not we decide if there is a minimum.

Helmut Januschka

you're right that silently adjusting the bitrate is surprising. The issue is that AV1 on AMD/Mesa produces unusable output at very low bitrates, frames that decoders outright reject, not just low-quality video.

WebRTC sometimes sends zero/very-low bitrate during startup, and failing would break the stream entirely. so the 100 is just a "safe" min. and the log atleast gives a hint.

Helmut Januschka . resolved

@tmath...@chromium.org - thanks alot for your, valid concerns, i am going to play around with it to see if we can get the defaults lower

File media/gpu/vaapi/av1_vaapi_video_encoder_delegate.cc
Line 452, Patchset 15 (Latest): if (current_params_.framerate == 0) {
Ted (Chromium) Meyer . unresolved

I'm not an expert on the encoder pipeline, but `current_params_` seems like something controlled by whatever JS call is attempting to do encoding. Does it not make sense to move default value handling to the VideoEncodeAccelerator::Config structure? Shouldn't all encoders have these same defaults, assuming they're good defaults to have? Maybe a user-supplied zero frame rate encode request _should_ fail?

Helmut Januschka

VideoEncodeAccelerator already defines `kDefaultFramerate = 30` (https://source.chromium.org/chromium/chromium/src/+/main:media/video/video_encode_accelerator.h;l=231?q=kDefaultFramerate%20%3D%2030%20file:video_encode_accelerator.h&ss=chromium%2Fchromium%2Fsrc), so there's precedent for this default. I could change this to use that constant instead of a magic 30 to make it clearer this is an intentional fallback.

As for whether zero framerate should fail: in WebRTC scenarios, the framerate can legitimately be unknown at initialization time. Failing would break these use cases.

Line 501, Patchset 15 (Latest):// 100 kbps is a reasonable minimum for low-resolution video.
constexpr int kMinTargetBitrateKbps = 100;
Ted (Chromium) Meyer . unresolved

As far as I am aware, webcodecs allows these encoders to be used via some JS calls (@eugene, is this correct?). This seems like a very webrtc specific set of minimum values. It's conceivable that someone might truly want video under 100Kbps, what is the reasoning for deciding this is a "reasonable" minimum? Do other encoders have this same minimum?

Helmut Januschka

100Kbps was the value that made the pipeline stable in testing. The real issue is that WebRTC shows up with 0 bitrate during startup, which breaks the AV1 encoder on AMD/Mesa, it produces frames that decoders reject entirely.

I don't have strong evidence that 100Kbps is the "right" minimum vs something lower like 50Kbps. The goal was just to ensure a non-zero value gets to the encoder.

Happy to lower it to 50Kbps if that seems more reasonable for WebCodecs use cases.

Or alternatively, I could change the check to only kick in when bitrate is literally 0, rather than enforcing a minimum. WDYT?

Open in Gerrit

Related details

Attention is currently required from:
  • Andres Calderon Jaramillo
  • Ted (Chromium) Meyer
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ice63b82c4158713ece09771a02998a9ab980d6c0
Gerrit-Change-Number: 7380014
Gerrit-PatchSet: 15
Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Andres Calderon Jaramillo <andr...@chromium.org>
Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
Gerrit-CC: Dale Curtis <dalec...@chromium.org>
Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
Gerrit-CC: James Zern <jz...@google.com>
Gerrit-Attention: Ted (Chromium) Meyer <tmath...@chromium.org>
Gerrit-Attention: Andres Calderon Jaramillo <andr...@chromium.org>
Gerrit-Comment-Date: Thu, 22 Jan 2026 21:48:20 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Ted (Chromium) Meyer <tmath...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Ted (Chromium) Meyer (Gerrit)

unread,
Jan 22, 2026, 5:44:57 PMJan 22
to Helmut Januschka, Eugene Zemtsov, Andres Calderon Jaramillo, James Zern, Dale Curtis, Chromium LUCI CQ, chromium...@chromium.org, chromeos-gfx-...@google.com, feature-me...@chromium.org, media-cro...@chromium.org, vaapi-...@chromium.org
Attention needed from Andres Calderon Jaramillo and Helmut Januschka

Ted (Chromium) Meyer added 3 comments

Patchset-level comments
Ted (Chromium) Meyer . unresolved

I mostly have concerns over the use of default values here. I'm not sure it makes a lot of sense for different codecs' encoder delegates to handle default values differently. If I ask for a 50Kbps video in h264 vs av1, we _should_ probably get the same bitrate out of our encoders, whether or not we decide if there is a minimum.

Helmut Januschka

you're right that silently adjusting the bitrate is surprising. The issue is that AV1 on AMD/Mesa produces unusable output at very low bitrates, frames that decoders outright reject, not just low-quality video.

WebRTC sometimes sends zero/very-low bitrate during startup, and failing would break the stream entirely. so the 100 is just a "safe" min. and the log atleast gives a hint.

Ted (Chromium) Meyer

It's my understanding that webrtc isn't the only user of these encoders. I took a cursory look through the bug, but wasn't able to find out what kind of very-low/non-zero framerates we're talking about, or where the threshold is for outputting crap frames.

Also, it might be good to update the commit message to mention that this CL is changing the meaning of 0FPS and 0Kbps in addition to the dpb frame fix.

File media/gpu/vaapi/av1_vaapi_video_encoder_delegate.cc
Line 452, Patchset 15 (Latest): if (current_params_.framerate == 0) {
Ted (Chromium) Meyer . unresolved

I'm not an expert on the encoder pipeline, but `current_params_` seems like something controlled by whatever JS call is attempting to do encoding. Does it not make sense to move default value handling to the VideoEncodeAccelerator::Config structure? Shouldn't all encoders have these same defaults, assuming they're good defaults to have? Maybe a user-supplied zero frame rate encode request _should_ fail?

Helmut Januschka

VideoEncodeAccelerator already defines `kDefaultFramerate = 30` (https://source.chromium.org/chromium/chromium/src/+/main:media/video/video_encode_accelerator.h;l=231?q=kDefaultFramerate%20%3D%2030%20file:video_encode_accelerator.h&ss=chromium%2Fchromium%2Fsrc), so there's precedent for this default. I could change this to use that constant instead of a magic 30 to make it clearer this is an intentional fallback.

As for whether zero framerate should fail: in WebRTC scenarios, the framerate can legitimately be unknown at initialization time. Failing would break these use cases.

Ted (Chromium) Meyer

I suppose I am ok with treating 0 for framerate (and bitrate) as a "do whatever you think is best mr. encoder" message. Maybe it makes sense to ensure that they are both zero to enable this behavior? So if the caller requests 50Kbps and 0FPS, they get a legitimate error, since that makes no sense. If both are zero, then use defaults.

Line 501, Patchset 15 (Latest):// 100 kbps is a reasonable minimum for low-resolution video.
constexpr int kMinTargetBitrateKbps = 100;
Ted (Chromium) Meyer . unresolved

As far as I am aware, webcodecs allows these encoders to be used via some JS calls (@eugene, is this correct?). This seems like a very webrtc specific set of minimum values. It's conceivable that someone might truly want video under 100Kbps, what is the reasoning for deciding this is a "reasonable" minimum? Do other encoders have this same minimum?

Helmut Januschka

100Kbps was the value that made the pipeline stable in testing. The real issue is that WebRTC shows up with 0 bitrate during startup, which breaks the AV1 encoder on AMD/Mesa, it produces frames that decoders reject entirely.

I don't have strong evidence that 100Kbps is the "right" minimum vs something lower like 50Kbps. The goal was just to ensure a non-zero value gets to the encoder.

Happy to lower it to 50Kbps if that seems more reasonable for WebCodecs use cases.

Or alternatively, I could change the check to only kick in when bitrate is literally 0, rather than enforcing a minimum. WDYT?

Ted (Chromium) Meyer

My gut feeling here is that "zero -> 100" is better than "max(value, 100)", since webrtc isn't the only thing using this file, and undocumented codec/platform specific combinations are going to be a debugging nightmare later. It a perfect world, this would be an optional<int>, so webrtc could legitimately say "give me whatever you think it should be", while still allowing anyone to explicitly set a value to whatever they'd like. Treating 0 as that optional is probably ok though, since it does not actually make sense to have a 0Kbps video.

Open in Gerrit

Related details

Attention is currently required from:
  • Andres Calderon Jaramillo
  • Helmut Januschka
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ice63b82c4158713ece09771a02998a9ab980d6c0
Gerrit-Change-Number: 7380014
Gerrit-PatchSet: 15
Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Andres Calderon Jaramillo <andr...@chromium.org>
Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
Gerrit-CC: Dale Curtis <dalec...@chromium.org>
Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
Gerrit-CC: James Zern <jz...@google.com>
Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
Gerrit-Attention: Andres Calderon Jaramillo <andr...@chromium.org>
Gerrit-Comment-Date: Thu, 22 Jan 2026 22:44:47 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Helmut Januschka <hel...@januschka.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Helmut Januschka (Gerrit)

unread,
Jan 25, 2026, 3:14:17 AM (13 days ago) Jan 25
to Helmut Januschka, Jerome Jiang, Mirko Bonadei, AyeAye, Eugene Zemtsov, Andres Calderon Jaramillo, Ted (Chromium) Meyer, James Zern, Dale Curtis, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, cblume...@chromium.org, chrome-intell...@chromium.org, jz...@chromium.org, chrome-intelligence-te...@google.com, fuzzin...@chromium.org, fgal...@chromium.org, mar...@chromium.org, penghuan...@chromium.org, chromeos-gfx-...@google.com, feature-me...@chromium.org, media-cro...@chromium.org, vaapi-...@chromium.org
Attention needed from Andres Calderon Jaramillo

Helmut Januschka added 1 comment

Patchset-level comments
File-level comment, Patchset 18 (Latest):
Helmut Januschka . resolved

@tmath...@chromium.org - changed to a "only use defaults if 0" approach, could you take a look if that would be more feasable and less limited/magic?

Open in Gerrit

Related details

Attention is currently required from:
  • Andres Calderon Jaramillo
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ice63b82c4158713ece09771a02998a9ab980d6c0
Gerrit-Change-Number: 7380014
Gerrit-PatchSet: 18
Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Andres Calderon Jaramillo <andr...@chromium.org>
Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
Gerrit-CC: Dale Curtis <dalec...@chromium.org>
Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
Gerrit-CC: James Zern <jz...@google.com>
Gerrit-CC: Jerome Jiang <ji...@chromium.org>
Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
Gerrit-Attention: Andres Calderon Jaramillo <andr...@chromium.org>
Gerrit-Comment-Date: Sun, 25 Jan 2026 08:13:57 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Ted (Chromium) Meyer (Gerrit)

unread,
Jan 27, 2026, 1:33:29 PM (11 days ago) Jan 27
to Helmut Januschka, Jerome Jiang, Mirko Bonadei, AyeAye, Eugene Zemtsov, Andres Calderon Jaramillo, James Zern, Dale Curtis, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, cblume...@chromium.org, chrome-intell...@chromium.org, jz...@chromium.org, chrome-intelligence-te...@google.com, fuzzin...@chromium.org, fgal...@chromium.org, mar...@chromium.org, penghuan...@chromium.org, chromeos-gfx-...@google.com, feature-me...@chromium.org, media-cro...@chromium.org, vaapi-...@chromium.org
Attention needed from Andres Calderon Jaramillo and Helmut Januschka

Ted (Chromium) Meyer added 10 comments

Patchset-level comments
Ted (Chromium) Meyer . resolved

Looks mostly good, just remove some superfluous comments and fix up the signed int types.

Commit Message
Line 9, Patchset 18 (Latest): The GPU process crashes (exit_code=8) when initializing the AV1 VA-API
encoder on AMD GPUs with Mesa drivers. This occurs because AMD's
stateless AV1 encoder driver is sensitive to the DPB (Decoded Picture
Buffer) state and may access reference frame slots even when encoding
a keyframe.

This CL also changes the handling of 0 framerate and 0 bitrate values:
- 0 is now treated as "use default" rather than enforcing a minimum
- Framerate defaults to VideoEncodeAccelerator::kDefaultFramerate (30fps)
- Bitrate defaults to 100 kbps
- Explicitly requested low values (e.g., 50 kbps) are now respected

This allows callers like WebRTC to signal "encoder's choice" when the
actual values are not yet known, while still supporting explicit low
bitrate/framerate configurations for WebCodecs use cases.
Ted (Chromium) Meyer . unresolved

I recommend just un-indenting this manually or the auto-formatter will do weird things to it.

File media/gpu/vaapi/av1_vaapi_video_encoder_delegate.cc
Line 503, Patchset 18 (Latest):constexpr int kDefaultBitrateKbps = 100;
Ted (Chromium) Meyer . unresolved

unsigned type

Line 512, Patchset 18 (Latest):constexpr int kAmdWarmupFrameCount = 15; // ~0.5 seconds at 30fps for QP limit
Ted (Chromium) Meyer . unresolved

unsigned type

Line 544, Patchset 18 (Latest): int target_bandwidth_kbps =
Ted (Chromium) Meyer . unresolved

uint32

Line 570, Patchset 18 (Latest): int layer_bitrate_kbps = bitrate_sum / 1000;
Ted (Chromium) Meyer . unresolved

Change this (and bitrate_sum) to uint64_t. `bitrate_allocation.GetBitrateBps` already returns an unsigned 32 bit int, so there should never be a case where this is negative.

Then you can drop the " > 0" component in your expression below.

Line 778, Patchset 18 (Latest): // Log order_hint for AMD debugging
Ted (Chromium) Meyer . unresolved

remove

Line 796, Patchset 18 (Latest): // Warm-up logging for AMD/Mesa debugging (crbug.com/471780477).
Ted (Chromium) Meyer . unresolved

remove.

Line 1000, Patchset 18 (Latest): // Log DPB state after update for AMD debugging
Ted (Chromium) Meyer . unresolved

remove

Line 1337, Patchset 18 (Latest): // Log frame header parameters for AMD debugging
Ted (Chromium) Meyer . unresolved

remove

Open in Gerrit

Related details

Attention is currently required from:
  • Andres Calderon Jaramillo
  • Helmut Januschka
Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
Gerrit-Attention: Andres Calderon Jaramillo <andr...@chromium.org>
Gerrit-Comment-Date: Tue, 27 Jan 2026 18:33:17 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Helmut Januschka (Gerrit)

unread,
Jan 28, 2026, 6:11:56 PM (10 days ago) Jan 28
to Helmut Januschka, Jerome Jiang, Mirko Bonadei, AyeAye, Eugene Zemtsov, Andres Calderon Jaramillo, Ted (Chromium) Meyer, James Zern, Dale Curtis, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, cblume...@chromium.org, chrome-intell...@chromium.org, jz...@chromium.org, chrome-intelligence-te...@google.com, fuzzin...@chromium.org, fgal...@chromium.org, mar...@chromium.org, penghuan...@chromium.org, chromeos-gfx-...@google.com, feature-me...@chromium.org, media-cro...@chromium.org, vaapi-...@chromium.org
Attention needed from Andres Calderon Jaramillo and Ted (Chromium) Meyer

Helmut Januschka added 12 comments

Patchset-level comments
Ted (Chromium) Meyer . resolved

I mostly have concerns over the use of default values here. I'm not sure it makes a lot of sense for different codecs' encoder delegates to handle default values differently. If I ask for a 50Kbps video in h264 vs av1, we _should_ probably get the same bitrate out of our encoders, whether or not we decide if there is a minimum.

Helmut Januschka

you're right that silently adjusting the bitrate is surprising. The issue is that AV1 on AMD/Mesa produces unusable output at very low bitrates, frames that decoders outright reject, not just low-quality video.

WebRTC sometimes sends zero/very-low bitrate during startup, and failing would break the stream entirely. so the 100 is just a "safe" min. and the log atleast gives a hint.

Ted (Chromium) Meyer

It's my understanding that webrtc isn't the only user of these encoders. I took a cursory look through the bug, but wasn't able to find out what kind of very-low/non-zero framerates we're talking about, or where the threshold is for outputting crap frames.

Also, it might be good to update the commit message to mention that this CL is changing the meaning of 0FPS and 0Kbps in addition to the dpb frame fix.

Helmut Januschka

Done

Commit Message
Line 9, Patchset 18: The GPU process crashes (exit_code=8) when initializing the AV1 VA-API

encoder on AMD GPUs with Mesa drivers. This occurs because AMD's
stateless AV1 encoder driver is sensitive to the DPB (Decoded Picture
Buffer) state and may access reference frame slots even when encoding
a keyframe.

This CL also changes the handling of 0 framerate and 0 bitrate values:
- 0 is now treated as "use default" rather than enforcing a minimum
- Framerate defaults to VideoEncodeAccelerator::kDefaultFramerate (30fps)
- Bitrate defaults to 100 kbps
- Explicitly requested low values (e.g., 50 kbps) are now respected

This allows callers like WebRTC to signal "encoder's choice" when the
actual values are not yet known, while still supporting explicit low
bitrate/framerate configurations for WebCodecs use cases.
Ted (Chromium) Meyer . resolved

I recommend just un-indenting this manually or the auto-formatter will do weird things to it.

Helmut Januschka

Done

File media/gpu/vaapi/av1_vaapi_video_encoder_delegate.cc
Line 452, Patchset 15: if (current_params_.framerate == 0) {
Ted (Chromium) Meyer . resolved

I'm not an expert on the encoder pipeline, but `current_params_` seems like something controlled by whatever JS call is attempting to do encoding. Does it not make sense to move default value handling to the VideoEncodeAccelerator::Config structure? Shouldn't all encoders have these same defaults, assuming they're good defaults to have? Maybe a user-supplied zero frame rate encode request _should_ fail?

Helmut Januschka

VideoEncodeAccelerator already defines `kDefaultFramerate = 30` (https://source.chromium.org/chromium/chromium/src/+/main:media/video/video_encode_accelerator.h;l=231?q=kDefaultFramerate%20%3D%2030%20file:video_encode_accelerator.h&ss=chromium%2Fchromium%2Fsrc), so there's precedent for this default. I could change this to use that constant instead of a magic 30 to make it clearer this is an intentional fallback.

As for whether zero framerate should fail: in WebRTC scenarios, the framerate can legitimately be unknown at initialization time. Failing would break these use cases.

Ted (Chromium) Meyer

I suppose I am ok with treating 0 for framerate (and bitrate) as a "do whatever you think is best mr. encoder" message. Maybe it makes sense to ensure that they are both zero to enable this behavior? So if the caller requests 50Kbps and 0FPS, they get a legitimate error, since that makes no sense. If both are zero, then use defaults.

Helmut Januschka

I considered requiring both to be zero, but WebRTC can legitimately have one known and one unknown at init time (e.g.,known target bitrate but unknown framerate). Treating each independently seems more flexible for real-world scenarios.

Line 501, Patchset 15:// 100 kbps is a reasonable minimum for low-resolution video.
constexpr int kMinTargetBitrateKbps = 100;
Ted (Chromium) Meyer . resolved

As far as I am aware, webcodecs allows these encoders to be used via some JS calls (@eugene, is this correct?). This seems like a very webrtc specific set of minimum values. It's conceivable that someone might truly want video under 100Kbps, what is the reasoning for deciding this is a "reasonable" minimum? Do other encoders have this same minimum?

Helmut Januschka

100Kbps was the value that made the pipeline stable in testing. The real issue is that WebRTC shows up with 0 bitrate during startup, which breaks the AV1 encoder on AMD/Mesa, it produces frames that decoders reject entirely.

I don't have strong evidence that 100Kbps is the "right" minimum vs something lower like 50Kbps. The goal was just to ensure a non-zero value gets to the encoder.

Happy to lower it to 50Kbps if that seems more reasonable for WebCodecs use cases.

Or alternatively, I could change the check to only kick in when bitrate is literally 0, rather than enforcing a minimum. WDYT?

Ted (Chromium) Meyer

My gut feeling here is that "zero -> 100" is better than "max(value, 100)", since webrtc isn't the only thing using this file, and undocumented codec/platform specific combinations are going to be a debugging nightmare later. It a perfect world, this would be an optional<int>, so webrtc could legitimately say "give me whatever you think it should be", while still allowing anyone to explicitly set a value to whatever they'd like. Treating 0 as that optional is probably ok though, since it does not actually make sense to have a 0Kbps video.

Helmut Januschka

Done

Line 503, Patchset 18:constexpr int kDefaultBitrateKbps = 100;
Ted (Chromium) Meyer . resolved

unsigned type

Helmut Januschka

Done

Line 512, Patchset 18:constexpr int kAmdWarmupFrameCount = 15; // ~0.5 seconds at 30fps for QP limit
Ted (Chromium) Meyer . resolved

unsigned type

Helmut Januschka

Done

Line 544, Patchset 18: int target_bandwidth_kbps =
Ted (Chromium) Meyer . resolved

uint32

Helmut Januschka

Done

Line 570, Patchset 18: int layer_bitrate_kbps = bitrate_sum / 1000;
Ted (Chromium) Meyer . resolved

Change this (and bitrate_sum) to uint64_t. `bitrate_allocation.GetBitrateBps` already returns an unsigned 32 bit int, so there should never be a case where this is negative.

Then you can drop the " > 0" component in your expression below.

Helmut Januschka

Done

Line 778, Patchset 18: // Log order_hint for AMD debugging
Ted (Chromium) Meyer . resolved

remove

Helmut Januschka

Done

Line 796, Patchset 18: // Warm-up logging for AMD/Mesa debugging (crbug.com/471780477).
Ted (Chromium) Meyer . resolved

remove.

Helmut Januschka

Done

Line 1000, Patchset 18: // Log DPB state after update for AMD debugging
Ted (Chromium) Meyer . resolved

remove

Helmut Januschka

Done

Line 1337, Patchset 18: // Log frame header parameters for AMD debugging
Ted (Chromium) Meyer . resolved

remove

Helmut Januschka

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Andres Calderon Jaramillo
  • Ted (Chromium) Meyer
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ice63b82c4158713ece09771a02998a9ab980d6c0
    Gerrit-Change-Number: 7380014
    Gerrit-PatchSet: 21
    Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Andres Calderon Jaramillo <andr...@chromium.org>
    Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
    Gerrit-CC: Dale Curtis <dalec...@chromium.org>
    Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
    Gerrit-CC: James Zern <jz...@google.com>
    Gerrit-CC: Jerome Jiang <ji...@chromium.org>
    Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
    Gerrit-Attention: Ted (Chromium) Meyer <tmath...@chromium.org>
    Gerrit-Attention: Andres Calderon Jaramillo <andr...@chromium.org>
    Gerrit-Comment-Date: Wed, 28 Jan 2026 23:11:42 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Ted (Chromium) Meyer (Gerrit)

    unread,
    Jan 28, 2026, 7:20:11 PM (10 days ago) Jan 28
    to Helmut Januschka, Eugene Zemtsov, Jerome Jiang, Mirko Bonadei, AyeAye, Andres Calderon Jaramillo, James Zern, Dale Curtis, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, cblume...@chromium.org, chrome-intell...@chromium.org, jz...@chromium.org, chrome-intelligence-te...@google.com, fuzzin...@chromium.org, fgal...@chromium.org, mar...@chromium.org, penghuan...@chromium.org, chromeos-gfx-...@google.com, feature-me...@chromium.org, media-cro...@chromium.org, vaapi-...@chromium.org
    Attention needed from Andres Calderon Jaramillo, Eugene Zemtsov and Helmut Januschka

    Ted (Chromium) Meyer voted and added 2 comments

    Votes added by Ted (Chromium) Meyer

    Code-Review+1

    2 comments

    Patchset-level comments
    Ted (Chromium) Meyer . resolved

    I'll also add Eugene as a reviewer since he does a lot with encoders.

    File media/gpu/vaapi/av1_vaapi_video_encoder_delegate.cc
    Line 778, Patchset 18: // Log order_hint for AMD debugging
    Ted (Chromium) Meyer . unresolved

    remove

    Helmut Januschka

    Done

    Ted (Chromium) Meyer

    AH! I hadn't intended this to mean "remove the comment" not "remove the log". Comments should be "why" and not "what". The raison d'etre for logs is self evident.

    anyway, you can put the logs back in (though maybe making them DVLOGF(2) or DVLOGF(3) might be a bit better). feel free to leave them out if you don't think it's important though.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Andres Calderon Jaramillo
    • Eugene Zemtsov
    • Helmut Januschka
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ice63b82c4158713ece09771a02998a9ab980d6c0
    Gerrit-Change-Number: 7380014
    Gerrit-PatchSet: 21
    Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Andres Calderon Jaramillo <andr...@chromium.org>
    Gerrit-Reviewer: Eugene Zemtsov <eug...@chromium.org>
    Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
    Gerrit-CC: Dale Curtis <dalec...@chromium.org>
    Gerrit-CC: James Zern <jz...@google.com>
    Gerrit-CC: Jerome Jiang <ji...@chromium.org>
    Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
    Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
    Gerrit-Attention: Andres Calderon Jaramillo <andr...@chromium.org>
    Gerrit-Attention: Eugene Zemtsov <eug...@chromium.org>
    Gerrit-Comment-Date: Thu, 29 Jan 2026 00:19:58 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Helmut Januschka (Gerrit)

    unread,
    Jan 28, 2026, 7:38:54 PM (10 days ago) Jan 28
    to Helmut Januschka, Eugene Zemtsov, Ted (Chromium) Meyer, Jerome Jiang, Mirko Bonadei, AyeAye, Andres Calderon Jaramillo, James Zern, Dale Curtis, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, cblume...@chromium.org, chrome-intell...@chromium.org, jz...@chromium.org, chrome-intelligence-te...@google.com, fuzzin...@chromium.org, fgal...@chromium.org, mar...@chromium.org, penghuan...@chromium.org, chromeos-gfx-...@google.com, feature-me...@chromium.org, media-cro...@chromium.org, vaapi-...@chromium.org
    Attention needed from Andres Calderon Jaramillo and Eugene Zemtsov

    Helmut Januschka added 1 comment

    File media/gpu/vaapi/av1_vaapi_video_encoder_delegate.cc
    Line 778, Patchset 18: // Log order_hint for AMD debugging
    Ted (Chromium) Meyer . resolved

    remove

    Helmut Januschka

    Done

    Ted (Chromium) Meyer

    AH! I hadn't intended this to mean "remove the comment" not "remove the log". Comments should be "why" and not "what". The raison d'etre for logs is self evident.

    anyway, you can put the logs back in (though maybe making them DVLOGF(2) or DVLOGF(3) might be a bit better). feel free to leave them out if you don't think it's important though.

    Helmut Januschka

    oh my fault, yes they will be usefull for "me in 3 months" 😂

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Andres Calderon Jaramillo
    • Eugene Zemtsov
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ice63b82c4158713ece09771a02998a9ab980d6c0
      Gerrit-Change-Number: 7380014
      Gerrit-PatchSet: 22
      Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
      Gerrit-Reviewer: Andres Calderon Jaramillo <andr...@chromium.org>
      Gerrit-Reviewer: Eugene Zemtsov <eug...@chromium.org>
      Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
      Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
      Gerrit-CC: Dale Curtis <dalec...@chromium.org>
      Gerrit-CC: James Zern <jz...@google.com>
      Gerrit-CC: Jerome Jiang <ji...@chromium.org>
      Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
      Gerrit-Attention: Andres Calderon Jaramillo <andr...@chromium.org>
      Gerrit-Attention: Eugene Zemtsov <eug...@chromium.org>
      Gerrit-Comment-Date: Thu, 29 Jan 2026 00:38:36 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      open
      diffy

      Hirokazu Honda (Gerrit)

      unread,
      Jan 28, 2026, 10:45:13 PM (10 days ago) Jan 28
      to Helmut Januschka, Eugene Zemtsov, Ted (Chromium) Meyer, Jerome Jiang, Mirko Bonadei, AyeAye, Andres Calderon Jaramillo, James Zern, Dale Curtis, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, cblume...@chromium.org, chrome-intell...@chromium.org, jz...@chromium.org, chrome-intelligence-te...@google.com, fuzzin...@chromium.org, fgal...@chromium.org, mar...@chromium.org, penghuan...@chromium.org, chromeos-gfx-...@google.com, feature-me...@chromium.org, media-cro...@chromium.org, vaapi-...@chromium.org
      Attention needed from Andres Calderon Jaramillo and Helmut Januschka

      Hirokazu Honda added 1 comment

      Patchset-level comments
      File-level comment, Patchset 22 (Latest):
      Hirokazu Honda . resolved

      Hi, I am a bit swarmed these days but I will review this in a week if that's ok.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Andres Calderon Jaramillo
      • Helmut Januschka
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ice63b82c4158713ece09771a02998a9ab980d6c0
      Gerrit-Change-Number: 7380014
      Gerrit-PatchSet: 22
      Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
      Gerrit-Reviewer: Andres Calderon Jaramillo <andr...@chromium.org>
      Gerrit-Reviewer: Eugene Zemtsov <eug...@chromium.org>
      Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
      Gerrit-Reviewer: Hirokazu Honda <hi...@chromium.org>
      Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
      Gerrit-CC: Dale Curtis <dalec...@chromium.org>
      Gerrit-CC: James Zern <jz...@google.com>
      Gerrit-CC: Jerome Jiang <ji...@chromium.org>
      Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
      Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
      Gerrit-Attention: Andres Calderon Jaramillo <andr...@chromium.org>
      Gerrit-Comment-Date: Thu, 29 Jan 2026 03:45:02 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      open
      diffy

      Helmut Januschka (Gerrit)

      unread,
      Jan 29, 2026, 2:23:18 AM (9 days ago) Jan 29
      to Helmut Januschka, Hirokazu Honda, Eugene Zemtsov, Ted (Chromium) Meyer, Jerome Jiang, Mirko Bonadei, AyeAye, Andres Calderon Jaramillo, James Zern, Dale Curtis, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, cblume...@chromium.org, chrome-intell...@chromium.org, jz...@chromium.org, chrome-intelligence-te...@google.com, fuzzin...@chromium.org, fgal...@chromium.org, mar...@chromium.org, penghuan...@chromium.org, chromeos-gfx-...@google.com, feature-me...@chromium.org, media-cro...@chromium.org, vaapi-...@chromium.org
      Attention needed from Andres Calderon Jaramillo and Hirokazu Honda

      Helmut Januschka added 1 comment

      Patchset-level comments
      Hirokazu Honda . resolved

      Hi, I am a bit swarmed these days but I will review this in a week if that's ok.

      Helmut Januschka

      no stress! appreciate your help!

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Andres Calderon Jaramillo
      • Hirokazu Honda
      Gerrit-Attention: Hirokazu Honda <hi...@chromium.org>
      Gerrit-Attention: Andres Calderon Jaramillo <andr...@chromium.org>
      Gerrit-Comment-Date: Thu, 29 Jan 2026 07:23:05 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Hirokazu Honda <hi...@chromium.org>
      satisfied_requirement
      open
      diffy

      Helmut Januschka (Gerrit)

      unread,
      Feb 6, 2026, 10:51:07 AM (yesterday) Feb 6
      to Helmut Januschka, Hirokazu Honda, Eugene Zemtsov, Ted (Chromium) Meyer, Jerome Jiang, Mirko Bonadei, AyeAye, Andres Calderon Jaramillo, James Zern, Dale Curtis, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, cblume...@chromium.org, chrome-intell...@chromium.org, jz...@chromium.org, chrome-intelligence-te...@google.com, fuzzin...@chromium.org, fgal...@chromium.org, mar...@chromium.org, penghuan...@chromium.org, chromeos-gfx-...@google.com, feature-me...@chromium.org, media-cro...@chromium.org, vaapi-...@chromium.org
      Attention needed from Andres Calderon Jaramillo and Hirokazu Honda

      Helmut Januschka added 1 comment

      Patchset-level comments
      Helmut Januschka . resolved

      @hi...@chromium.org ping, thanks!

      Gerrit-Comment-Date: Fri, 06 Feb 2026 15:50:50 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      open
      diffy

      Hirokazu Honda (Gerrit)

      unread,
      Feb 6, 2026, 6:03:16 PM (19 hours ago) Feb 6
      to Helmut Januschka, Eugene Zemtsov, Ted (Chromium) Meyer, Jerome Jiang, Mirko Bonadei, AyeAye, Andres Calderon Jaramillo, James Zern, Dale Curtis, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, cblume...@chromium.org, chrome-intell...@chromium.org, jz...@chromium.org, chrome-intelligence-te...@google.com, fuzzin...@chromium.org, fgal...@chromium.org, mar...@chromium.org, penghuan...@chromium.org, chromeos-gfx-...@google.com, feature-me...@chromium.org, media-cro...@chromium.org, vaapi-...@chromium.org
      Attention needed from Andres Calderon Jaramillo and Helmut Januschka

      Hirokazu Honda added 1 comment

      Patchset-level comments
      Hirokazu Honda . resolved

      Supproting a resolutin change in this class seems to be strange.
      VaapiVEA doesn't support the dynamic resolution change.

      If that actually happens, the webrtc encoder client (RTCVideoEncoder) doesn't work as expected.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Andres Calderon Jaramillo
      • Helmut Januschka
      Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
      Gerrit-Attention: Andres Calderon Jaramillo <andr...@chromium.org>
      Gerrit-Comment-Date: Fri, 06 Feb 2026 23:03:06 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      open
      diffy

      Helmut Januschka (Gerrit)

      unread,
      10:25 AM (2 hours ago) 10:25 AM
      to Helmut Januschka, Hirokazu Honda, Eugene Zemtsov, Ted (Chromium) Meyer, Jerome Jiang, Mirko Bonadei, AyeAye, Andres Calderon Jaramillo, James Zern, Dale Curtis, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, cblume...@chromium.org, chrome-intell...@chromium.org, jz...@chromium.org, chrome-intelligence-te...@google.com, fuzzin...@chromium.org, fgal...@chromium.org, mar...@chromium.org, penghuan...@chromium.org, chromeos-gfx-...@google.com, feature-me...@chromium.org, media-cro...@chromium.org, vaapi-...@chromium.org
      Attention needed from Andres Calderon Jaramillo and Hirokazu Honda

      Helmut Januschka voted and added 1 comment

      Votes added by Helmut Januschka

      Commit-Queue+1

      1 comment

      Patchset-level comments
      Hirokazu Honda . resolved

      Supproting a resolutin change in this class seems to be strange.
      VaapiVEA doesn't support the dynamic resolution change.

      If that actually happens, the webrtc encoder client (RTCVideoEncoder) doesn't work as expected.

      Helmut Januschka

      thx, see latest PS

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Andres Calderon Jaramillo
      • Hirokazu Honda
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ice63b82c4158713ece09771a02998a9ab980d6c0
      Gerrit-Change-Number: 7380014
      Gerrit-PatchSet: 23
      Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
      Gerrit-Reviewer: Andres Calderon Jaramillo <andr...@chromium.org>
      Gerrit-Reviewer: Eugene Zemtsov <eug...@chromium.org>
      Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
      Gerrit-Reviewer: Hirokazu Honda <hi...@chromium.org>
      Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
      Gerrit-CC: Dale Curtis <dalec...@chromium.org>
      Gerrit-CC: James Zern <jz...@google.com>
      Gerrit-CC: Jerome Jiang <ji...@chromium.org>
      Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
      Gerrit-Attention: Hirokazu Honda <hi...@chromium.org>
      Gerrit-Attention: Andres Calderon Jaramillo <andr...@chromium.org>
      Gerrit-Comment-Date: Sat, 07 Feb 2026 15:25:29 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Hirokazu Honda <hi...@chromium.org>
      satisfied_requirement
      open
      diffy
      Reply all
      Reply to author
      Forward
      0 new messages