You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Chromium/Brave 156: decoder created without errors on direct backend, but video is black / YouTube player doesn't render (RTX 3060, driver 580.178.04)Â #486
libva 2.12 / VA-API 1.20 (vainfo from Ubuntu packages)
What works
vainfo lists H264, HEVC, VP9 (profiles 0 and 2), AV1.
With VaapiOnNvidiaGPUs enabled, brave://media-internals shows VaapiVideoDecoder, and the driver log shows the decoder being created and kept alive for the whole playback (nvCreateContext Creating decoder, Creating VideoProc context), with no CUDA or VA errors on the direct backend.
What doesn't
With VaapiOnNvidiaGPUs the image is not displayed. On YouTube the player area is missing entirely; with a local H.264 .mp4 dragged into the browser the video stays black. Audio plays.
Without VaapiOnNvidiaGPUs everything displays fine, but Chromium skips the NVIDIA device (Should skip nVidia device named: nvidia-drm) and decodes in software (VpxVideoDecoder / Dav1dVideoDecoder).
Same result with both. Also tried with and without AcceleratedVideoDecodeLinuxZeroCopyGL, with --disable-gpu-sandbox, and with Vulkan on and off (Skia backend GaneshGL in the failing runs).
Other findings (for context)
Ubuntu's packaged 0.0.8 fails with nvCreateContext CUDA ERROR 'invalid argument' ("0 render targets, 0 surfaces") on this setup; the current master doesn't.
The egl backend with master fails with egl_allocateBackingImage CUDA ERROR 'invalid resource handle' (400) then reconnect CUDA ERROR 'operation not supported' (801), and Chromium falls back to software.
Log excerpt (NVD_LOG=1, direct backend, failing config)
nvCreateContext Creating context with 0 render targets, at 2560x1440
nvCreateContext Creating decoder: 0x... for context id: 2
nvCreateContext Creating VideoProc context id: 614
...
nvDestroyContext Destroying context: 2 (only when the browser is closed)
I'm happy to provide more logs or test patches. Is there anything specific you'd like me to capture (e.g. extra --vmodule flags on the Chromium side)?
On a new machine (RTX 4060 TI) I forgot to add any flags after new install. And default brave did break very recently to black screen on all the latest upstream versions (this repo upstream 0.0.18, nvidia 615.78.08-1). I was also running old brave version, and after the update it didn't change a thing.
Looking at brave:\\media-internals it was falling back to dav1d for AV1 after this message.: Cannot select VaapiVideoDecoder for video decoding. status=DecoderStatus::Codes::kUnsupportedConfig
h264 Had the same message and Selected FFmpegVideoDecoder for video decoding
And for hevc test videos there was no video surface, only audio, and this log: debug "Warning, FFmpegDemuxer failed to create a valid/supported video decoder configuration from muxed stream, config:codec: hevc, profile: hevc main, level: not available, alpha_mode: is_opaque, coded size: [7680,4320], visible rect: [0,0,7680,4320], natural size: [7680,4320], has extra data: true, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}, spatial format: [projection_type: none, stereo_mode: mono]" 00:00:00.032 info "FFmpegDemuxer: skipping invalid or unsupported video track"
I've added these flags and now it works fine, Vaapi is selected for AV1, HEVC, H264 --enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,VaapiOnNvidiaGPUs,VaapiIgnoreDriverChecks
Activity
elee1766 commentedon Nov 2, 2026
try forcing egl and see if it works
replace chromium with your brave?
Tomiscout commentedon Nov 2, 2026
On a new machine (RTX 4060 TI) I forgot to add any flags after new install. And default brave did break very recently to black screen on all the latest upstream versions (this repo upstream 0.0.18, nvidia 615.78.08-1). I was also running old brave version, and after the update it didn't change a thing.
Looking at
brave:\\media-internalsit was falling back to dav1d for AV1 after this message.:Cannot select VaapiVideoDecoder for video decoding. status=DecoderStatus::Codes::kUnsupportedConfigh264Had the same message andSelected FFmpegVideoDecoder for video decodingAnd for hevc test videos there was no video surface, only audio, and this log:
debug "Warning, FFmpegDemuxer failed to create a valid/supported video decoder configuration from muxed stream, config:codec: hevc, profile: hevc main, level: not available, alpha_mode: is_opaque, coded size: [7680,4320], visible rect: [0,0,7680,4320], natural size: [7680,4320], has extra data: true, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}, spatial format: [projection_type: none, stereo_mode: mono]" 00:00:00.032 info "FFmpegDemuxer: skipping invalid or unsupported video track"I've added these flags and now it works fine, Vaapi is selected for AV1, HEVC, H264
--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,VaapiOnNvidiaGPUs,VaapiIgnoreDriverChecks@elee1766 env vars and flags also fixed it for me
nico87 commentedon Nov 2, 2026
I will try using Chromium. I can tell that updating VA-API to the latest build and switching to Wayland actually fixed the issue.