[FFmpeg-trac] #9518(avfilter:new): scale_vulkan and gblur_vulkan filters trigger segfault on invocation.
FFmpeg
trac at avcodec.org
Fri Nov 19 22:21:47 EET 2021
#9518: scale_vulkan and gblur_vulkan filters trigger segfault on invocation.
-------------------------------------+-------------------------------------
Reporter: Dennis E. | Type: defect
Mungai |
Status: new | Priority: normal
Component: avfilter | Version:
| unspecified
Keywords: vulkan | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
'''Summary of the bug:'''
I'm running FFmpeg's latest git tip from master, and encountered a
segfault when running any command that invokes either {{{scale_vulkan}}}
or {{{gblur_vulkan}}}. I'm yet to track down the exact commit that breaks
these filters, so I'll update the ticket with that info when that's done.
Here is what gdb reports:
{{{
gdb --args /home/brainiarc7/ffmpeg_sources/ffmpeg/ffmpeg_g -init_hw_device
cuda=cuda:0 -filter_hw_device cuda -i feeds.mp4 -filter_complex
"[0:v]hwupload=extra_hw_frames=16:derive_device=vulkan,scale_vulkan=w=1920:h=1080,hwupload=derive_device=cuda[s0]"
-map "[s0]" -c:v:0 h264_nvenc -map "0:a" -c:a copy -f mpegts -y
scale_vulkan_test.ts
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/brainiarc7/ffmpeg_sources/ffmpeg/ffmpeg_g...
(gdb) run
Starting program: /home/brainiarc7/ffmpeg_sources/ffmpeg/ffmpeg_g
-init_hw_device cuda=cuda:0 -filter_hw_device cuda -i feeds.mp4
-filter_complex
\[0:v\]hwupload=extra_hw_frames=16:derive_device=vulkan,scale_vulkan=w=1920:h=1080,hwupload=derive_device=cuda\[s0\]
-map \[s0\] -c:v:0 h264_nvenc -map 0:a -c:a copy -f mpegts -y
scale_vulkan_test.ts
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
ffmpeg version N-104617-g405685dec7 Copyright (c) 2000-2021 the FFmpeg
developers
built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
configuration: --pkg-config-flags=--static --enable-static --disable-
shared --prefix=/home/brainiarc7 --bindir=/home/brainiarc7/bin --enable-
cuda-nvcc --enable-cuvid --enable-libnpp --extra-
cflags=-I/usr/local/cuda/include/ --extra-ldflags=-L/usr/local/cuda/lib64/
--enable-nvenc --enable-libass --enable-debug --enable-gpl --cpu=native
--enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-openssl
--enable-librtmp --enable-libzvbi --enable-version3 --enable-opencl
--enable-pic --enable-librav1e --enable-libglslang --enable-vulkan
--enable-libsrt --enable-avisynth --enable-libsvtav1 --enable-libvpx
--enable-libplacebo --enable-librav1e --nvccflags='-gencode
arch=compute_75,code=sm_75 -O2' --extra-libs='-lpthread -lm -lz -ldl'
--enable-nonfree
libavutil 57. 9.100 / 57. 9.100
libavcodec 59. 13.100 / 59. 13.100
libavformat 59. 9.101 / 59. 9.101
libavdevice 59. 0.101 / 59. 0.101
libavfilter 8. 17.100 / 8. 17.100
libswscale 6. 1.100 / 6. 1.100
libswresample 4. 0.100 / 4. 0.100
libpostproc 56. 0.100 / 56. 0.100
[New Thread 0x7fffe5973000 (LWP 2443713)]
[New Thread 0x7fffe5172000 (LWP 2443714)]
[New Thread 0x7fffe1fff000 (LWP 2443715)]
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'feeds.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf59.5.100
Duration: 01:00:02.13, start: 0.000000, bitrate: 13533 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661),
yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 13144
kb/s, 29.97 fps, 29.97 tbr, 30k tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Stream #0:1[0x2](eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz,
5.1(side), fltp, 384 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
Side data:
audio service type: main
Thread 1 "ffmpeg_g" received signal SIGSEGV, Segmentation fault.
0x000055555596da4c in ff_vk_free_buf (s=s at entry=0x55555884a080,
buf=buf at entry=0x55555884a8f0) at ./libavutil/vulkan.c:356
356 vk->DeviceWaitIdle(s->hwctx->act_dev);
}}}
And for the gblur_vulkan filter which also triggers a segfault in a
similar fashion:
{{{
gdb --args /home/brainiarc7/ffmpeg_sources/ffmpeg/ffmpeg_g -init_hw_device
cuda=cuda:0 -filter_hw_device cuda -i feeds.mp4 -filter_complex
"[0:v]hwupload=extra_hw_frames=16:derive_device=vulkan,gblur_vulkan,hwupload=derive_device=cuda[s0]"
-map "[s0]" -c:v:0 h264_nvenc -map "0:a" -c:a copy -f mpegts -y
scale_vulkan_test.ts
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/brainiarc7/ffmpeg_sources/ffmpeg/ffmpeg_g...
(gdb) run
Starting program: /home/brainiarc7/ffmpeg_sources/ffmpeg/ffmpeg_g
-init_hw_device cuda=cuda:0 -filter_hw_device cuda -i feeds.mp4
-filter_complex
\[0:v\]hwupload=extra_hw_frames=16:derive_device=vulkan,gblur_vulkan,hwupload=derive_device=cuda\[s0\]
-map \[s0\] -c:v:0 h264_nvenc -map 0:a -c:a copy -f mpegts -y
scale_vulkan_test.ts
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
ffmpeg version N-104617-g405685dec7 Copyright (c) 2000-2021 the FFmpeg
developers
built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
configuration: --pkg-config-flags=--static --enable-static --disable-
shared --prefix=/home/brainiarc7 --bindir=/home/brainiarc7/bin --enable-
cuda-nvcc --enable-cuvid --enable-libnpp --extra-
cflags=-I/usr/local/cuda/include/ --extra-ldflags=-L/usr/local/cuda/lib64/
--enable-nvenc --enable-libass --enable-debug --enable-gpl --cpu=native
--enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-openssl
--enable-librtmp --enable-libzvbi --enable-version3 --enable-opencl
--enable-pic --enable-librav1e --enable-libglslang --enable-vulkan
--enable-libsrt --enable-avisynth --enable-libsvtav1 --enable-libvpx
--enable-libplacebo --enable-librav1e --nvccflags='-gencode
arch=compute_75,code=sm_75 -O2' --extra-libs='-lpthread -lm -lz -ldl'
--enable-nonfree
libavutil 57. 9.100 / 57. 9.100
libavcodec 59. 13.100 / 59. 13.100
libavformat 59. 9.101 / 59. 9.101
libavdevice 59. 0.101 / 59. 0.101
libavfilter 8. 17.100 / 8. 17.100
libswscale 6. 1.100 / 6. 1.100
libswresample 4. 0.100 / 4. 0.100
libpostproc 56. 0.100 / 56. 0.100
[New Thread 0x7fffe5973000 (LWP 2448642)]
[New Thread 0x7fffe5172000 (LWP 2448643)]
[New Thread 0x7fffe1fff000 (LWP 2448644)]
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'feeds.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf59.5.100
Duration: 01:00:02.13, start: 0.000000, bitrate: 13533 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661),
yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 13144
kb/s, 29.97 fps, 29.97 tbr, 30k tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Stream #0:1[0x2](eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz,
5.1(side), fltp, 384 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
Side data:
audio service type: main
Thread 1 "ffmpeg_g" received signal SIGSEGV, Segmentation fault.
0x000055555596da4c in ff_vk_free_buf (s=s at entry=0x55555884a080,
buf=buf at entry=0x55555884a8f0) at ./libavutil/vulkan.c:356
356 vk->DeviceWaitIdle(s->hwctx->act_dev);
}}}
The other Vulkan-based filters (as tested) are unaffected.
Warm regards,
Dennis.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9518>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list