[Cin] Mesa 24.3 and Vulkan
Andrew Randrianasulu
randrianasulu at gmail.com
Fri Dec 6 11:22:25 CET 2024
пт, 6 дек. 2024 г., 13:01 Andrea paz <gamberucci.andrea at gmail.com>:
> Arch upgraded to mesa 24.3.1 and my tests with system ffmpeg 7.1 were
> successful, but with many problems.
> Need to initialize the “vulkan” device otherwise it doesn't work. In
> case of AMD graphics you have to use RADV_PERFTEST=video_decode and/or
> RADV_PERFTEST=video_encode. This is because the merge in Mesa that
> will make device enablement automatic will only be in Mesa 25 (which
> should be the next release).
>
> The decoder works (it worked even before Mesa 24.3 came out) but it
> should be noted that without vulkan you have fps= 2222 while with
> vulkan you have fps=460
> Command used for the decoder:
>
> $ RADV_PERFTEST=video_decode ffmpeg -init_hw_device "vulkan=vk:0"
> -hwaccel vulkan -hwaccel_output_format vulkan -i
> battlefield_1080p_120fps_8mbps.mp4 -f null - -benchmark
>
>
> The encoder also works (it did not work before Mesa 24.3): you can see
> that the file is created (test_vk.mp4) and starts in mpv/VLC; the
> sound works but the video is completely black. Also, the original
> video is 35 MB while the video encoded with hevc_vulkan is 1.3 GB! The
> fps are not bad: 223.
> Command used for encoder:
>
> $ RADV_PERFTEST=video_encode ffmpeg -init_hw_device vulkan=vkdev:0
> -filter_hw_device vkdev -i battlefield_1080p_120fps_8mbps.mp4
> -filter:v "format=nv12,hwupload" -c:v hevc_vulkan test_vk.mp4
>
>
> Instead when compiling CinGG I can't to enable the vulkan device. How
> to do it? i tried to use --enable-vulkan in “configure” but it is not
> recognized. How could I use the two strings RADV_PERFTEST=video_encode
> and RADV_PERFTEST=video_decode in CinGG?
>
just set them as
export RADV_PERFTEST=video_encode
before launching cingg
not sure, may be you can add video_decode after "," ? check mesa3d docs ...
for vulkan ... does it even makes sense to try with 7.0 ffmpeg? I think
many fixes were done in 7.1/git ffmpeg exactly for this case ..
may be compile cingg with external/system 7.1 ?
it will break some presets and F_scale
alternatively just use yuv4moeg pipeline to external ffmpeg running in
another terminal, using named fifo (made with mkfifo) as filename to encode
on cingg side and filename to decode from on encoding ffmpeg instance. No
sound ...
Look around may be someone already filled bugreport on too big filesize
with hevc_vulcan on radv ?
I think if merged ffv1 and some other vulcan-based encoders in ffmpeg git
should be more interesting than yet another way to engage same h264/5
encoding hardware ...
http://git.ffmpeg.org/gitweb/ffmpeg.git?a=search&h=HEAD&st=commit&s=vulkan
yeah, ffv1 vulcan encoder was merged in november
thanks for testing anyway!
> I attach the test results.
>
> Il giorno gio 28 nov 2024 alle ore 01:06 Terje J. Hanssen via Cin
> <cin at lists.cinelerra-gg.org> ha scritto:
> >
> >
> > Den 28.11.2024 00:00, skrev Terje J. Hanssen:
> >
> >
> >
> >
> > Den 27.11.2024 23:40, skrev Andrew Randrianasulu:
> >
> >
> >
> > чт, 28 нояб. 2024 г., 01:22 Terje J. Hanssen via Cin <
> cin at lists.cinelerra-gg.org>:
> >>
> >> In August this year we had a thread "h264 vulkan encoding" initiated by
> Andrea
> >> https://lists.cinelerra-gg.org/pipermail/cin/2024-August/008517.html
> >>
> >> Mesa 24.3 is released with many Vulkan Driver Improvement, and
> implementations are expected around the corner in rolling distributions.
> >>
> >> Some articles about this in Phoronix
> >> https://www.phoronix.com/news/Mesa-24.3-Released
> >> https://www.phoronix.com/news/Mesa-24.3-rc2
> >> https://www.phoronix.com/news/Mesa-24.3-rc1-Released
> >> https://www.phoronix.com/news/Intel-Vulkan-Video-H264-H265
> >>
> >> With ffmpeg (7.1) h264/5 vulkan encoder support, I wonder if Cingg is
> ready to put them into use?
> >>
> >> ffmpeg -hide_banner -encoders | grep vulkan
> >> V....D h264_vulkan H.264/AVC (Vulkan) (codec h264)
> >> V....D hevc_vulkan H.265/HEVC (Vulkan) (codec hevc)
> >
> >
> >
> > you can try already (on system's ffmpeg), can't you?
> >
> >
> > Not Mesa 24.3 and vulkan encoding quite yet:
> >
> > API: OpenGL v: 4.6 vendor: intel mesa v: 24.2.7 renderer: Mesa Intel Arc
> > A750 Graphics (DG2)
> > API: Vulkan v: 1.3.296 drivers: N/A surfaces: xcb,xlib
> > API: EGL Message: EGL data requires eglinfo. Check --recommends.
> >
> >
> > # export ANV_VIDEO_DECODE=1
> >
> > # vulkaninfo | grep VK_KHR_video
> > VK_KHR_video_decode_h264 : extension revision 9
> > VK_KHR_video_decode_h265 : extension revision 8
> > VK_KHR_video_decode_queue : extension revision 8
> > VK_KHR_video_queue
> >
> > So assume the FFmpeg benchmarks sample was vulkan decoding only, as
> they work for hdv (mpeg2) input also:
> >
> > ffmpeg -hide_banner -init_hw_device "vulkan=vk:0" -hwaccel vulkan
> -hwaccel_output_format vulkan -i hdv09_04.m2t -f null - -benchmark
> > frame= 5963 fps=3503 q=-0.0 Lsize=N/A time=00:03:58.77 bitrate=N/A
> speed= 140x
> > bench: utime=19.045s stime=0.313s rtime=1.702s
> >
> > ffmpeg -hide_banner -init_hw_device "vulkan=vk:0" -hwaccel vulkan
> -hwaccel_output_format vulkan -i hdv09_04_h264_qsv.mp4 -f null - -benchmark
> > frame= 5969 fps=988 q=-0.0 Lsize=N/A time=00:03:58.76 bitrate=N/A
> speed=39.5x
> > bench: utime=1.397s stime=1.390s rtime=6.042s
> > bench: maxrss=164700KiB
> >
> > fmpeg -hide_banner -init_hw_device "vulkan=vk:0" -hwaccel vulkan
> -hwaccel_output_format vulkan -i hdv09_04_hevc_qsv_8b420.mp4 -f null -
> -benchmark
> > frame= 248 fps=2.0 q=-0.0 size=N/A time=00:00:09.92 bitrate=N/A
> speed=0.0787x
> > hevc terrible slow !!
> >
> > And I found a sample encoding on reddit, which failed as assumed for me
> as follows (similar for h264_vulkan):
> >
> > ffmpeg -init_hw_device vulkan=vkdev:0 -filter_hw_device vkdev -i
> hdv09_04.m2t -filter:v "format=nv12,hwupload" -c:v h264_vulkan
> hdv09_04_h264_vulkan_8b420.mp4
> >
> > ffmpeg version 7.1 Copyright (c) 2000-2024 the FFmpeg developers
> > built with gcc 14 (SUSE Linux)
> > configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64
> --incdir=/usr/include/ffmpeg --extra-cflags='-O2 -Wall -U_FORTIFY_SOURCE
> -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables
> -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type
> -flto=auto -ffat-lto-objects -g' --optflags='-O2 -Wall -U_FORTIFY_SOURCE
> -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables
> -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type
> -flto=auto -ffat-lto-objects -g' --disable-htmlpages --enable-pic
> --disable-stripping --enable-shared --disable-static --enable-gpl
> --enable-version3 --enable-libsmbclient --disable-openssl --enable-gnutls
> --enable-ladspa --enable-libshaderc --enable-vulkan ......................
> > ..........
> > [hevc_vulkan @ 0x55c32f8df6c0] Device does not support the
> VK_KHR_video_encode_queue extension!
> > [vost#0:0/hevc_vulkan @ 0x55c32fa0cf00] Error while opening encoder -
> maybe incorrect parameters such as bit_rate, rate, width or height.
> > [vf#0:0 @ 0x55c32f8adcc0] Error sending frames to consumers: Function
> not implemented
> > [vf#0:0 @ 0x55c32f8adcc0] Task finished with error code: -38 (Function
> not implemented)
> > [vf#0:0 @ 0x55c32f8adcc0] Terminating thread with return code -38
> (Function not implemented)
> > [vost#0:0/hevc_vulkan @ 0x55c32fa0cf00] Could not open encoder before EOF
> > [vost#0:0/hevc_vulkan @ 0x55c32fa0cf00] Task finished with error code:
> -22 (Invalid argument)
> > [vost#0:0/hevc_vulkan @ 0x55c32fa0cf00] Terminating thread with return
> code -22 (Invalid argument)
> > [out#0/mp4 @ 0x55c32f8b2c80] Nothing was written into output file,
> because at least one of its streams received no packets.
> > frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A
> speed=N/A
> > [aac @ 0x55c32f90c640] Qavg: 441.163
> > Conversion failed!
> >
> >
> >
> >
> >
> >
> > --
> > Cin mailing list
> > Cin at lists.cinelerra-gg.org
> > https://lists.cinelerra-gg.org/mailman/listinfo/cin
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20241206/6d002f9a/attachment-0001.htm>
More information about the Cin
mailing list