-
Notifications
You must be signed in to change notification settings - Fork 338
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Intel GPU Top: No activity for VideoEnhance even with VA-API working #1376
Comments
on a intel i7-1165g7, same OS, I don't see a "VideoDecode" field on intel_gpu_top, there's VideoEnhance though. |
@m911t: Yes, you are correct, it's |
video enhance is vebox which is used to handle vpp workload, including de-interlacing, de-noise etc. |
Interesting, even when I run the following, there's still no activity on
I wonder if it's an issue with FFMPEG then? Does it require building FFMPEG with oneVPL? |
Indeed! Even if you enable mpv's video enhancements, VideoEnhance never gets used. All is done by the 3D Render engine... Which leads to overusage and dropped frames. The only time I've seen that engine be used was when vaapi decoding was working with Chromium browsers, but I use wayland now and only Firefox has working vaapi decoding with wayland. |
Are you disabling the RDD sandbox for hardware video acceleration in Firefox? As far as I'm aware, that is still a requirement for the time being. Otherwise video acceleration doesn't work in Firefox yet. |
in media driver , there are multiple path video processing , for example, |
@jike212 yeah I am. |
@XinfengZhang are you aware of any configuration in mpv that makes use of the videoEnhance engine? |
TBH, I also dont know :). maybe we need to try the commands to check . |
hmm. i've used common settings but they dont ever seem to use videoEnhance. |
from my understanding, if there are denoise, de-interlace ... it will surely to through video enhancement engine. |
E.g. for FFmpeg, there's a separate "-scale_vaapi" (or "-scale_qsv") option that needs to be used to request scaling & format conversions to be done on GPU video HW. Using it requires some expertise, as I've seen example commands which actually ask FFmpeg to ping-pong the data between CPU & GPU, instead of doing everything on GPU side and getting only end result back to CPU side. |
mpv uses its own scalers and shaders to their processing. They are quite intent on not wanting to rely on built-in hardware processing as much as possible, to the point of not even enabling hardware decoding if possible. You can ask in their repo for an option to use intel media processing, but I’m not sure if anyone would be interested to. |
write this on a terminal |
@lavilao Interesting.
It still looks quite good, comparable to my mpv settings. Is it a hardware reason that sw decoding can't be made to work with |
because for intel gpus, it's scale_qsv |
@kkanungo17 yes, I also dont notice any difference between default and hq, as for the second part the reason is the surface format, hw decoded media format is nv12 while sw decoded is yuv420p + a lot more.If you try to use any hw filter while on sw decoding mpv will throw an error telling you that could not convert between surfaces or something like that. |
yeah soz, it can be _vaapi and _qsv but _qsv needs a ffmpeg compiled with some extra stuff |
ok, set "vf=scale_vaapi=1920:1080::hq::2" and it creates activity on VideoEnhance, very nice. Perhaps not the best place to ask, but does this conflict with mpv's scale=,cscale=,dscale=,tscale= options? |
@lavilao @m911t So I do have scale_qsv option available, but that doesn't work at all, always returning the "could not convert between surfaces" error. And But looks like mpv has a
If you scale beyond what you've passed to the vf option, mpv's scaling options should kick in. Use |
@kkanungo17 that surface error is typically shown when you are trying to use a hardware filter on a software decoder, are you sure the file you are testing is hardware decoded by your pc? Ironically vo=vaapi was usable before, but after mpv 0.32 or 0.33 it became unusable (no osd and that), I think using vo=gpu and hwdec=vaapi should be enough to use scale_vaapi, about qsv I dont know, my cpu is not compatible on linux with qsv. |
@lavilao I understand that, and I do wonder what it is about that |
@kkanungo17 I think scale_qsv requires mpv to be compiled with it supported (if it even is supported). About vo=vaapi I guess you can check the vo vaapi file on the source code ¯_(ツ)_/¯ |
yeah scale_qsv requires ffmpeg built with it |
If you want to use qsv to scale ("Intel Quick Sync Video"), you must set up ffmpeg with QSV enablement(--enable-libmfx). For vaapi, lavilao's answer is correct. If everything is ok, you could see scaling workloads in VideoEnhance. |
Add ffmpeg with QSV wiki: https://trac.ffmpeg.org/wiki/Hardware/QuickSync |
I don't see any VideoEnhance in Firefox 110, Fedora 37, VP9 or AV1 playback on YouTube. Only Video shows some activity. I see VideoEnhance in Chromium or Chrome in VP9 playback. My CPU is Intel 11th Gen. |
On a 12th gen intel I had to add the following to get anything to show for videoenhance during videos in chromium:
Still unnecessarily bad performance according to ufotest.com (obviously capped by iGPU since it goes to 99% render/3d in that case). Also YouTube videos end up clipping @ when it gets to 99% on render/3d, despite being vaapi enabled. This did not happen before the 3 above flags were added, despite gpu acceleration still being enabled in chrome. |
System information
Issue behavior
I have VAAPI working and I can see video decoding activity in the
Video
bar inintel_gpu_top
indicating that the GPU is properly decoding the file (occurs both with MPV and VLC). There is no activity inVideoEnhance
section however. It is as though that part of the GPU is not being activated and it's not clear why.Describe the expected behavior
Both
Video
andVideoEnhance
should show activity when a file with a supported codec is being played. When I was running Arch with X11, I felt likeVideoEnhance
also showed activity so I'm unsure if the issue is specific to Wayland.Debug information
ls /dev/dri
?vainfo >vainfo.log 2>&1
?: Yes, the following appears after running that commandby-path card0 renderD128
The text was updated successfully, but these errors were encountered: