Request backport of two i915/Intel Arc GPU patches

Bug #2072755 reported by nyanmisaka
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

Hello Ubuntu Linux Kernel Team,

Recently, Ubuntu 24.04 bumped the kernel version to linux 6.8.8 (6.8.0-38.38 pkg version), which introduced an i915 regression affecting GPU accelerated video transcoding on Intel Arc GPU. This bug affects all linux 6.8.5+ kernels and was not fully fixed until linux 6.9.4.

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2068087

The issue makes the ffmpeg command fail and throws i915 error in dmesg.
`[ 81.026591] Fence expiration time out i915-0000:01:00.0:ffmpeg[521]:2!`

https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10895

Could you please backport these two patches to the Ubuntu kernel branch to fix the regression?

https://gitlab.com/linux-kernel/stable/-/commit/fdf6c286478698ed901db1bd5a8702667f796c28

https://gitlab.com/linux-kernel/stable/-/commit/e9250578ac6278dfd24a57c326eb805b3bdb0e31

description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Chris (solidsnake1298) wrote :

I was able to reproduce. Reverting to package 6.8.0-36 restores all Intel Quick Sync functionality on my Arc GPU.

But the issues with Intel Arc GPUs and Quick Sync on 6.8.0-38 appears to be limited to ffmpeg commands that scale the output resolution.

An example ffmpeg command that does NOT work. The original video is 1080P and the output is 720P.

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -ss 00:00:03.000 -noaccurate_seek -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i file:"/path/to/1080_video.mkv" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 av1_qsv -preset veryfast -b:v 3616000 -maxrate 3616000 -bufsize 7232000 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=w=1280:h=720:format=nv12:extra_hw_frames=24,hwmap=derive_device=qsv,format=qsv" -codec:a:0 libfdk_aac -ac 2 -vbr:a 5 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename "c30716eb121448346fcc00a2440071a3-1.mp4" -start_number 1 -hls_segment_filename "/var/lib/jellyfin/transcodes/c30716eb121448346fcc00a2440071a3%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/var/lib/jellyfin/transcodes/c30716eb121448346fcc00a2440071a3.m3u8

This results in this ffmpeg output, in addition to the "Fence expiration" messages in dmesg that nyanmisaka provided.

[AVHWDeviceContext @ 0x599b524f7c40] No VA display found for any default device.
Device creation failed: -22.
Failed to set value 'vaapi=va:,kernel_driver=i915,driver=iHD' for option 'init_hw_device': Invalid argument
Error parsing global options: Invalid argument

Here is an example ffmpeg command on 6.8.0-38 that still works. Same source video, but the output resolution of the video is NOT changed.

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i file:"/path/to/1080_video.mkv" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 av1_qsv -preset veryfast -b:v 9616000 -maxrate 9616000 -bufsize 19232000 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=format=nv12:extra_hw_frames=24,hwmap=derive_device=qsv,format=qsv" -codec:a:0 libfdk_aac -ac 2 -vbr:a 5 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename "30a76f05628fdcae4769435bd663c36e-1.mp4" -start_number 0 -hls_segment_filename "/var/lib/jellyfin/transcodes/30a76f05628fdcae4769435bd663c36e%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/var/lib/jellyfin/transcodes/30a76f05628fdcae4769435bd663c36e.m3u8"

Note the only differences are the bit rate, which I have run tests to factor that out, and the presence of "w=1280:h=720" to scale down the video resolution.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.