Video hardware acceleration crashes display in kernel version 6.10.3

I’m using the KDE spin of fedora and ended up upgrading from 39 to 40 in the middle of all this.
Firmware version is IFGP6.03.03

It started some time after a software update, I’ve had this transparent green noise show up from time-to-time on YouTube videos. Continued playback eventually leads to Firefox crashing, which involved the whole screen blanking out temporarily.

All I have of that particular error message now is “…failed to create eglsurface 0x3000…”, as the screen now blacks out permanently and I have to force shutdown the computer.

The same green noise is present to a lesser extent playing a local video in vlc, didn’t crash on me yet.
Disabling hardware acceleration in firefox prevents the crashing and visual artifacts, but at a huge performance cost.
Kernel version 6.9.12 doesn’t have this issue at all, but both fc39 and fc40 versions of 6.10.3 have this issue.

I probably could have just deleted 6.10.3 but i don’t know if running the older kernels is a good idea after upgrading to fedora 40.

There are these entries in crashed process viewer in case anything here is useful.
https://drive.google.com/drive/folders/1R5antRQxLHJRcBAw1Rro7uh-WYVTKpoQ?usp=sharing

I have a FW16 and video accel is disabled by default in Firefox. It tried switching video accel on, but it’s performance was worse. Worse in the sense that the video was not as smooth frame to frame, and the lip sync was not as good.
I did not see the green artifacts you are seeing.
So, I prefer running without video accel for now.
The green bit will be bugs in the gpu firmware, so updating to latest firmware might help.

I suggest bisecting, it might be same as Framework website crashes/freezes on kernel 6.10 with Firefox on AMD Framework - #5 by Mario_Limonciello

Which OS, which Kernel, which graphics card and which compositor (Wayland or X.org)?

What I’ve seen here and in the linked thread, the common denominator seems to be Wayland.

I’m running OpenSuse Tumbleweed with kernel 6.10.3-1-default and XFCE4 as desktop environment, thus X.org (and not Wayland). Firefox plays the videos on the Framework site (linked in the other thread) just fine. FW16, 7840 CPU, no dGPU.

Did you explicitly turn on hardware acceleration? Firefox turns off by default.

How do I check if acceleration is active? There’s a section under settings with
Use recommended performance settings
Use hardware acceleration when available
Moving the tick in the upper line (default) or lower line doesn’t make a difference.
Firefox version 128.0.3 (64-bit)

There is something in about:config to turn it on explicitly IIRC. If you didn’t do that then it’s probably off still.

Okay. gfx.webrender.all was set to “false”. I’ve changed it to “true”, now let’s see what happens…
[edit]
No crash. After a restart of Firefox, the setting is still on “true” and the videos on Framework | Fix Consumer Electronics are playing nicely.
[/edit]

It’s not the web rendering it’s the hardware accelerated video playback option.

In about:support, I get the following:

HARDWARE_VIDEO_DECODING	
default	available		
runtime	unavailable	Force disabled by gfxInfo	Blocklisted; failure code FEATURE_FAILURE_VIDEO_DECODING_TEST_FAILED

In about:config, media.hardware-video-decoding.enabled is at the default “true” setting.

There should be something with a string ‘vaapi.enabled’ and that is usually set to false on default

Your distro might have the codecs for the video you’re trying to play not compiled in. You would need a mesa build with those codecs enabled.

I’ve since set both media.hardware-video-decoding.force-enabled and media.ffmpeg.vaapi.enabled to true. about:support now says:

HARDWARE_VIDEO_DECODING	
default	available		
user	force_enabled	Force enabled by pref	
env	blocklisted	Blocklisted by gfxInfo	Blocklisted; failure code FEATURE_HARDWARE_VIDEO_DECODING_DISABLE
HW_DECODED_VIDEO_ZERO_COPY	
default	available		
VP8_HW_DECODE	
default	available		
env	blocklisted	#BLOCKLIST_FEATURE_FAILURE_VIDEO_DECODING_MISSING	Blocklisted; failure code FEATURE_FAILURE_VIDEO_DECODING_MISSING
VP9_HW_DECODE	
default	available		
DMABUF_SURFACE_EXPORT	
default	blocked	Blocklisted by gfxInfo	Blocklisted; failure code FEATURE_FAILURE_BROKEN_DRIVER
BACKDROP_FILTER	
default	available		
CANVAS_RENDERER_THREAD	
default	available		
ACCELERATED_CANVAS2D	
default	available		
H264_HW_DECODE	
default	available		
AV1_HW_DECODE	
default	available		
REMOTE_CANVAS	
default	disabled	Disabled via pref	Blocklisted; failure code FEATURE_FAILURE_DISABLED
env	unavailable-no-gpu-process	Disabled without GPU process	Blocklisted; failure code FEATURE_REMOTE_CANVAS_NO_GPU_PROCESS
runtime	blocked	Platform not supported	Blocklisted; failure code FEATURE_REMOTE_CANVAS_NOT_WINDOWS

The videos are still playing fine. Are they in the list of available codecs for hardware acceleration? How do I find out?
Codec support in OpenSuse Tumbleweed is even better than in Ubuntu 22.04, where I wasn’t able to display any video stream from surveillance cameras in vlc. In OpenSuse, it just works (H.264, mainly).

$ vainfo
Trying display: wayland
Trying display: x11
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Mesa Gallium driver 24.1.3 for AMD Radeon 780M (radeonsi, gfx1103_r1, LLVM 18.1.8, DRM 3.57, 6.10.3-1-default)
vainfo: Supported profile and entrypoints
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointEncSlice
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD
      VAProfileAV1Profile0            :	VAEntrypointVLD
      VAProfileAV1Profile0            :	VAEntrypointEncSlice
      VAProfileNone                   :	VAEntrypointVideoProc

I think that’s most likely the same problem I had.
I probably didn’t think it was relevant because it was for a different laptop and OS.

Today I’ve got a crash while using wine. All screens would freeze, followed by going black after a couple seconds, terminating all running apps and restarting the session.
System: FW16, 7840, no dGPU, 64GB RAM, internal screen plus another three screens on the Dell WD19 dock, operating system: OpenSuse Tumbleweed with XFCE4.
Firefox is mentioned in the log, but I can’t tell if it really is related. There were three windows open, but no videos playing.

$ sudo dmesg -H
[15. Aug 11:07] [T1327498] [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx_0.0.0 timeout, signaled seq=643850979, emitted seq=643850981
[  +0,000178] [T1327498] [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process firefox pid 1277629 thread firefox:cs0 pid 1277726
[  +0,000155] [T1327498] amdgpu 0000:c2:00.0: amdgpu: GPU reset begin!
[  +2,496457] [T1327498] amdgpu 0000:c2:00.0: amdgpu: MES failed to respond to msg=REMOVE_QUEUE
[  +0,000014] [T1327498] [drm:amdgpu_mes_unmap_legacy_queue [amdgpu]] *ERROR* failed to unmap legacy queue
[  +0,271877] [T1327498] [drm:gfx_v11_0_hw_fini [amdgpu]] *ERROR* failed to halt cp gfx
[  +0,001909] [T1327498] amdgpu 0000:c2:00.0: amdgpu: MODE2 reset
[  +0,033916] [T1327498] amdgpu 0000:c2:00.0: amdgpu: GPU reset succeeded, trying to resume
[  +0,000733] [T1327498] [drm] PCIE GART of 512M enabled (table at 0x000000807FD00000).
[  +0,000143] [T1327498] [drm] VRAM is lost due to GPU reset!
[  +0,000006] [T1327498] amdgpu 0000:c2:00.0: amdgpu: SMU is resuming...
[  +0,002432] [T1327498] amdgpu 0000:c2:00.0: amdgpu: SMU is resumed successfully!
[  +0,002472] [T1327498] [drm] DMUB hardware initialized: version=0x08003F00
[  +1,428308] [T1327498] [drm] kiq ring mec 3 pipe 1 q 0
[  +0,002017] [T1327498] amdgpu 0000:c2:00.0: [drm:jpeg_v4_0_hw_init [amdgpu]] JPEG decode initialized successfully.
[  +0,000537] [T1327498] amdgpu 0000:c2:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
[  +0,000003] [T1327498] amdgpu 0000:c2:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
[  +0,000001] [T1327498] amdgpu 0000:c2:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
[  +0,000001] [T1327498] amdgpu 0000:c2:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 6 on hub 0
[  +0,000001] [T1327498] amdgpu 0000:c2:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 7 on hub 0
[  +0,000002] [T1327498] amdgpu 0000:c2:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 8 on hub 0
[  +0,000001] [T1327498] amdgpu 0000:c2:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 9 on hub 0
[  +0,000001] [T1327498] amdgpu 0000:c2:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 10 on hub 0
[  +0,000001] [T1327498] amdgpu 0000:c2:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 11 on hub 0
[  +0,000001] [T1327498] amdgpu 0000:c2:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
[  +0,000001] [T1327498] amdgpu 0000:c2:00.0: amdgpu: ring vcn_unified_0 uses VM inv eng 0 on hub 8
[  +0,000001] [T1327498] amdgpu 0000:c2:00.0: amdgpu: ring jpeg_dec uses VM inv eng 1 on hub 8
[  +0,000001] [T1327498] amdgpu 0000:c2:00.0: amdgpu: ring mes_kiq_3.1.0 uses VM inv eng 13 on hub 0
[  +0,001711] [T1327498] amdgpu 0000:c2:00.0: amdgpu: recover vram bo from shadow start
[  +0,000001] [T1327498] amdgpu 0000:c2:00.0: amdgpu: recover vram bo from shadow done
[  +0,000015] [T1327498] amdgpu 0000:c2:00.0: amdgpu: GPU reset(4) succeeded!

I haven’t had any Issues with steam games run with proton. Maybe it has to do with using the dedicated GPU (which I forgot to mention I have)
For me it seems like all video playback on the integrated graphics seems to be affected.

I’m not all that good at troubleshooting stuff.
I’m not sure where to begin for something like bisecting the kernel like Mario_Limonciello mentioned, but I have a gut feeling from how everything seems to behave that It could be some kind of memory mishandling by the integrated graphics.

The distortion effects seem to linger longest on the areas of the screen that stay the same, while also somewhat being affected by nearby movement.
Seems like something’s bleeding over, or maybe that just has to do with how the video codecs work.

I got a kernel update that seems to have changed things a bit.
I now get confetti static instead of just a black screen when it crashes.

New reply because I can’t edit my post anymore for some reason.

Some missed details and updates.

I have the 7940 CPU and the dedicated graphics card.

Changed crash dump link:
https://drive.google.com/drive/folders/11QPHGi3IacTfHQXx9og3NHLioR5lHyZA?usp=sharing

I’m also running the KDE spin of Fedora 40 on a FW16 with no dGPU. With the latest set of updates (not sure if it included kernal updates or not), I was also getting the green noise and crashing on Youtube videos in Firefox.

Going to about:config and turning off media.hardware-video-decoding.enabled appears to have fixed the problem for me.

1 Like

Assuming same issue as other thread it’s fixed if you upgrade to mesa 24.1.6.

Yeah, that works for me too, I should’ve tried that sooner.
It seems the hardware acceleration setting in the normal settings tab disables more than necessary.

I’ve looked into upgrading mesa, and as far as I can tell I’d have to compile it from source or something?
There’s also the flatpack version of Firefox that apparently has the updated version built-in, but at this point I’m feeling too lazy to try anything else after finding one working solution.