<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">пт, 6 дек. 2024 г., 13:01 Andrea paz <<a href="mailto:gamberucci.andrea@gmail.com" target="_blank" rel="noreferrer">gamberucci.andrea@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Arch upgraded to mesa 24.3.1 and my tests with system ffmpeg 7.1 were<br>
successful, but with many problems.<br>
Need to initialize the “vulkan” device otherwise it doesn't work. In<br>
case of AMD graphics you have to use RADV_PERFTEST=video_decode and/or<br>
RADV_PERFTEST=video_encode. This is because the merge in Mesa that<br>
will make device enablement automatic will only be in Mesa 25 (which<br>
should be the next release).<br>
<br>
The decoder works (it worked even before Mesa 24.3 came out) but it<br>
should be noted that without vulkan you have fps= 2222 while with<br>
vulkan you have fps=460<br>
Command used for the decoder:<br>
<br>
$ RADV_PERFTEST=video_decode ffmpeg -init_hw_device "vulkan=vk:0"<br>
-hwaccel vulkan -hwaccel_output_format vulkan -i<br>
battlefield_1080p_120fps_8mbps.mp4 -f null - -benchmark<br>
<br>
<br>
The encoder also works (it did not work before Mesa 24.3): you can see<br>
that the file is created (test_vk.mp4) and starts in mpv/VLC; the<br>
sound works but the video is completely black. Also, the original<br>
video is 35 MB while the video encoded with hevc_vulkan is 1.3 GB! The<br>
fps are not bad: 223.<br>
Command used for encoder:<br>
<br>
$ RADV_PERFTEST=video_encode ffmpeg -init_hw_device vulkan=vkdev:0<br>
-filter_hw_device vkdev -i battlefield_1080p_120fps_8mbps.mp4<br>
-filter:v "format=nv12,hwupload" -c:v hevc_vulkan test_vk.mp4<br>
<br>
<br>
Instead when compiling CinGG I can't to enable the vulkan device. How<br>
to do it? i tried to use --enable-vulkan in “configure” but it is not<br>
recognized. How could I use the two strings RADV_PERFTEST=video_encode<br>
and RADV_PERFTEST=video_decode in CinGG?<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">just set them as </div><div dir="auto"><br></div><div dir="auto">export RADV_PERFTEST=video_encode</div><div dir="auto">before launching cingg</div><div dir="auto"><br></div><div dir="auto">not sure, may be you can add video_decode after "," ? check mesa3d docs ...</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">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 ..</div><div dir="auto"><br></div><div dir="auto">may be compile cingg with external/system 7.1 ? </div><div dir="auto"><br></div><div dir="auto">it will break some presets and F_scale </div><div dir="auto"><br></div><div dir="auto">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 ...</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">Look around may be someone already filled bugreport on too big filesize with hevc_vulcan on radv ?</div><div dir="auto"><br></div><div dir="auto">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 ...</div><div dir="auto"><br></div><div dir="auto"><a href="http://git.ffmpeg.org/gitweb/ffmpeg.git?a=search&h=HEAD&st=commit&s=vulkan">http://git.ffmpeg.org/gitweb/ffmpeg.git?a=search&h=HEAD&st=commit&s=vulkan</a></div><div dir="auto"><br></div><div dir="auto">yeah, ffv1 vulcan encoder was merged in november</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">thanks for testing anyway!</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I attach the test results.<br>
<br>
Il giorno gio 28 nov 2024 alle ore 01:06 Terje J. Hanssen via Cin<br>
<<a href="mailto:cin@lists.cinelerra-gg.org" rel="noreferrer noreferrer" target="_blank">cin@lists.cinelerra-gg.org</a>> ha scritto:<br>
><br>
><br>
> Den 28.11.2024 00:00, skrev Terje J. Hanssen:<br>
><br>
><br>
><br>
><br>
> Den 27.11.2024 23:40, skrev Andrew Randrianasulu:<br>
><br>
><br>
><br>
> чт, 28 нояб. 2024 г., 01:22 Terje J. Hanssen via Cin <<a href="mailto:cin@lists.cinelerra-gg.org" rel="noreferrer noreferrer" target="_blank">cin@lists.cinelerra-gg.org</a>>:<br>
>><br>
>> In August this year we had a thread "h264 vulkan encoding" initiated by Andrea<br>
>> <a href="https://lists.cinelerra-gg.org/pipermail/cin/2024-August/008517.html" rel="noreferrer noreferrer noreferrer" target="_blank">https://lists.cinelerra-gg.org/pipermail/cin/2024-August/008517.html</a><br>
>><br>
>> Mesa 24.3 is released with many Vulkan Driver Improvement, and implementations are expected around the corner in rolling distributions.<br>
>><br>
>> Some articles about this in Phoronix<br>
>> <a href="https://www.phoronix.com/news/Mesa-24.3-Released" rel="noreferrer noreferrer noreferrer" target="_blank">https://www.phoronix.com/news/Mesa-24.3-Released</a><br>
>> <a href="https://www.phoronix.com/news/Mesa-24.3-rc2" rel="noreferrer noreferrer noreferrer" target="_blank">https://www.phoronix.com/news/Mesa-24.3-rc2</a><br>
>> <a href="https://www.phoronix.com/news/Mesa-24.3-rc1-Released" rel="noreferrer noreferrer noreferrer" target="_blank">https://www.phoronix.com/news/Mesa-24.3-rc1-Released</a><br>
>> <a href="https://www.phoronix.com/news/Intel-Vulkan-Video-H264-H265" rel="noreferrer noreferrer noreferrer" target="_blank">https://www.phoronix.com/news/Intel-Vulkan-Video-H264-H265</a><br>
>><br>
>> With ffmpeg (7.1) h264/5 vulkan encoder support, I wonder if Cingg is ready to put them into use?<br>
>><br>
>> ffmpeg -hide_banner -encoders | grep vulkan<br>
>>  V....D h264_vulkan          H.264/AVC (Vulkan) (codec h264)<br>
>>  V....D hevc_vulkan          H.265/HEVC (Vulkan) (codec hevc)<br>
><br>
><br>
><br>
> you can try already (on system's ffmpeg), can't you?<br>
><br>
><br>
> Not Mesa 24.3 and vulkan encoding quite yet:<br>
><br>
> API: OpenGL v: 4.6 vendor: intel mesa v: 24.2.7 renderer: Mesa Intel Arc<br>
>     A750 Graphics (DG2)<br>
>   API: Vulkan v: 1.3.296 drivers: N/A surfaces: xcb,xlib<br>
>   API: EGL Message: EGL data requires eglinfo. Check --recommends.<br>
><br>
><br>
> # export ANV_VIDEO_DECODE=1<br>
><br>
> # vulkaninfo | grep VK_KHR_video<br>
>     VK_KHR_video_decode_h264                      : extension revision 9<br>
>     VK_KHR_video_decode_h265                      : extension revision 8<br>
>     VK_KHR_video_decode_queue                     : extension revision 8<br>
>     VK_KHR_video_queue<br>
><br>
> So assume the FFmpeg benchmarks sample was vulkan decoding only,  as they work for hdv (mpeg2) input also:<br>
><br>
> ffmpeg -hide_banner -init_hw_device "vulkan=vk:0" -hwaccel vulkan -hwaccel_output_format vulkan -i hdv09_04.m2t -f null - -benchmark<br>
> frame= 5963 fps=3503 q=-0.0 Lsize=N/A time=00:03:58.77 bitrate=N/A speed= 140x<br>
> bench: utime=19.045s stime=0.313s rtime=1.702s<br>
><br>
> ffmpeg -hide_banner -init_hw_device "vulkan=vk:0" -hwaccel vulkan -hwaccel_output_format vulkan -i hdv09_04_h264_qsv.mp4 -f null - -benchmark<br>
> frame= 5969 fps=988 q=-0.0 Lsize=N/A time=00:03:58.76 bitrate=N/A speed=39.5x<br>
> bench: utime=1.397s stime=1.390s rtime=6.042s<br>
> bench: maxrss=164700KiB<br>
><br>
> 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<br>
> frame=  248 fps=2.0 q=-0.0 size=N/A time=00:00:09.92 bitrate=N/A speed=0.0787x<br>
> hevc terrible slow !!<br>
><br>
> And I found a sample encoding on reddit, which failed as assumed for me as follows (similar for h264_vulkan):<br>
><br>
> 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<br>
><br>
> ffmpeg version 7.1 Copyright (c) 2000-2024 the FFmpeg developers<br>
>   built with gcc 14 (SUSE Linux)<br>
>   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 ......................<br>
> ..........<br>
> [hevc_vulkan @ 0x55c32f8df6c0] Device does not support the VK_KHR_video_encode_queue extension!<br>
> [vost#0:0/hevc_vulkan @ 0x55c32fa0cf00] Error while opening encoder - maybe incorrect parameters such as bit_rate, rate, width or height.<br>
> [vf#0:0 @ 0x55c32f8adcc0] Error sending frames to consumers: Function not implemented<br>
> [vf#0:0 @ 0x55c32f8adcc0] Task finished with error code: -38 (Function not implemented)<br>
> [vf#0:0 @ 0x55c32f8adcc0] Terminating thread with return code -38 (Function not implemented)<br>
> [vost#0:0/hevc_vulkan @ 0x55c32fa0cf00] Could not open encoder before EOF<br>
> [vost#0:0/hevc_vulkan @ 0x55c32fa0cf00] Task finished with error code: -22 (Invalid argument)<br>
> [vost#0:0/hevc_vulkan @ 0x55c32fa0cf00] Terminating thread with return code -22 (Invalid argument)<br>
> [out#0/mp4 @ 0x55c32f8b2c80] Nothing was written into output file, because at least one of its streams received no packets.<br>
> frame=    0 fps=0.0 q=0.0 Lsize=       0KiB time=N/A bitrate=N/A speed=N/A<br>
> [aac @ 0x55c32f90c640] Qavg: 441.163<br>
> Conversion failed!<br>
><br>
><br>
><br>
><br>
><br>
><br>
> --<br>
> Cin mailing list<br>
> <a href="mailto:Cin@lists.cinelerra-gg.org" rel="noreferrer noreferrer" target="_blank">Cin@lists.cinelerra-gg.org</a><br>
> <a href="https://lists.cinelerra-gg.org/mailman/listinfo/cin" rel="noreferrer noreferrer noreferrer" target="_blank">https://lists.cinelerra-gg.org/mailman/listinfo/cin</a><br>
</blockquote></div></div></div>