Opened 4 years ago
Closed 4 years ago
#9933 closed defect (needs_more_info)
`xfade_opencl` doesn't build
| Reported by: | Johnny | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | avfilter |
| Version: | unspecified | Keywords: | opencl |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
Summary of the bug:
The underlying [opencl program](https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/opencl/xfade.cl) for xfade_opencl doesn't seem to build.
How to reproduce:
% ffmpeg -v verbose -nostdin -init_hw_device opencl=opencl:0.0 -filter_hw_device opencl \
-i input.mp4 \
-filter_complex "\
[0:v]format=yuv420p,hwupload,split=2[base][blurred];
[blurred]boxblur_opencl[blurred];
[base][blurred]xfade_opencl[base];
[base]hwdownload,format=yuv420p[base]
" \
-map [base] -y output.mp4
ffmpeg version 4.3 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
configuration: --prefix=/usr/local --extra-cflags=-I/usr/local/cuda/include --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/cuda/lib64 --disable-debug --disable-stripping --disable-static --enable-shared --enable-nonfree --enable-gpl --enable-swresample --enable-avfilter --enable-fontconfig --enable-libzmq --enable-nvenc --enable-cuda --enable-cuvid --enable-libnpp --enable-opencl --enable-libfdk_aac --enable-pthreads --enable-libx264 --enable-libfontconfig --enable-libfreetype --enable-cuda-nvcc --enable-openssl
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
[AVHWDeviceContext @ 0x55c1bd60abc0] 0.0: NVIDIA CUDA / Tesla T4
[h264 @ 0x55c1bdec1980] Reinit context to 1280x720, pix_fmt: yuv420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf59.27.100
Duration: 00:02:00.07, start: 0.000000, bitrate: 278 kb/s
Stream #0:0(und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(left), 1280x720, 142 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : Lavc59.37.100 libx264
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : SoundHandler
Stream mapping:
Stream #0:0 (h264) -> format
format -> Stream #0:0 (libx264)
[h264 @ 0x55c1bdf004c0] Reinit context to 1280x720, pix_fmt: yuv420p
[graph 0 input from stream 0:0 @ 0x55c1be3ea280] w:1280 h:720 pixfmt:yuv420p tb:1/15360 fr:30/1 sar:0/1
[Parsed_boxblur_opencl_3 @ 0x55c1be3e75c0] luma_radius:2 luma_power:2 chroma_radius:2 chroma_power:2 alpha_radius:2 alpha_power:2 w:1280 chroma_w:1280 h:720 chroma_h:720
[Parsed_xfade_opencl_4 @ 0x55c1be3e8000] Failed to build program: -11.
[Parsed_xfade_opencl_4 @ 0x55c1be3e8000] Build log:
<kernel>:109:27: error: call to 'mix' is ambiguous
write_imagef(dst, uv, mix(val1, val2, (p.y >= 0) * (h > p.y) * (p.x >= 0) * (w > p.x)));
^~~
cl_kernel.h:3925:26: note: candidate function
float4 __OVERLOADABLE__ mix(float4 x, float4 y, float a) ;
^
cl_kernel.h:3942:25: note: candidate function
float4 __OVERLOADABLE__ mix(float4, float4, float4);
^
Error while filtering: Input/output error
Failed to inject frame into filter network: Input/output error
Error while processing the decoded data for stream #0:0
[AVIOContext @ 0x55c1bdc7fdc0] Statistics: 0 seeks, 0 writeouts
[AVIOContext @ 0x55c1bde96c00] Statistics: 178037 bytes read, 2 seeks
Conversion failed!
nvidia-smi output:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 440.64 Driver Version: 440.64 CUDA Version: 10.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 | | N/A 66C P0 20W / 70W | 0MiB / 15109MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
The error looks like the opencl compiler/builder failed to build the program and that stopped the filtergraph from being constructed.
Perhaps I'm having a mismatch of opencl version ? Or it has something to do with CUDA/nvidia driver ?
Change History (2)
comment:1 by , 4 years ago
| Keywords: | openCL xfade removed |
|---|
comment:2 by , 4 years ago
| Resolution: | → needs_more_info |
|---|---|
| Status: | new → closed |
Note:
See TracTickets
for help on using tickets.



I cannot reproduce but please test with current FFmpeg git head, the only version supported on this bug tracker.