PR #25638 opened by Kilian (lusoris) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/25638 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/25638.patch
Fixes link failures when individual Vulkan filters are built in isolation. ## Problem Seven of the 19 Vulkan filters in `allfilters.c` fail to link when configured alone with `--disable-everything --enable-vulkan --enable-filter=<name>`, because their `OBJS` lines reference objects that are only pulled in by another filter: - `blackdetect_vulkan`, `scdet_vulkan`, `v360_vulkan`: missing `vulkan.o` and `vulkan_filter.o` - `hflip_vulkan`, `vflip_vulkan`: missing `vulkan_filter.o` and the flip shader object - `flip_vulkan`: no `OBJS` line at all - `scale_vulkan`: missing `scale_eval.o` ## Fix - Add the missing objects to the `OBJS` lines in `libavfilter/Makefile` for the six filters above, and add the previously absent `OBJS` line for `flip_vulkan`. - Add the flip shader object (`vulkan/flip.comp.spv.o`) to the `OBJS` lines for `hflip_vulkan` and `vflip_vulkan` in `libavfilter/vulkan/Makefile`. Repeating `vulkan.o` or `vulkan_filter.o` across multiple `OBJS` lines is harmless because `ffbuild/common.mak` deduplicates via `$(sort)`. ## Testing Each of the 19 Vulkan filters in `allfilters.c` was configured alone with `--disable-everything --enable-vulkan --enable-filter=<name>` and built with `make ffmpeg`. On master `df2926615e` seven fail to link; with this patch all 19 link. A default configure with `--enable-vulkan` (all 19 Vulkan filters enabled) still builds `ffmpeg`, and `make fate-source` passes. Reproducer: ``` ./configure --disable-everything --enable-vulkan --enable-filter=scdet_vulkan && make ffmpeg ``` >From 3e613233a643e1537db58144f970b48eb1c03a79 Mon Sep 17 00:00:00 2001 From: lusoris <[email protected]> Date: Sat, 31 Oct 2026 09:48:53 +0100 Subject: [PATCH] avfilter/Makefile: add missing objects for standalone Vulkan filters Seven Vulkan filters fail to link when built on their own (--disable-everything --enable-vulkan --enable-filter=<name>), because their OBJS lines rely on objects that only another filter pulls in: - blackdetect_vulkan, scdet_vulkan, v360_vulkan: vulkan.o and vulkan_filter.o - hflip_vulkan, vflip_vulkan: vulkan_filter.o and the flip shader - flip_vulkan: no OBJS line at all - scale_vulkan: scale_eval.o Add the missing objects. Each of the 19 Vulkan filters now links when it is the only filter enabled. Signed-off-by: lusoris <[email protected]> --- libavfilter/Makefile | 13 +++++++------ libavfilter/vulkan/Makefile | 2 ++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/libavfilter/Makefile b/libavfilter/Makefile index e00652e4562..6da2d35c174 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -210,7 +210,7 @@ OBJS-$(CONFIG_BILATERAL_CUDA_FILTER) += vf_bilateral_cuda.o vf_bilateral cuda/load_helper.o OBJS-$(CONFIG_BITPLANENOISE_FILTER) += vf_bitplanenoise.o OBJS-$(CONFIG_BLACKDETECT_FILTER) += vf_blackdetect.o -OBJS-$(CONFIG_BLACKDETECT_VULKAN_FILTER) += vf_blackdetect_vulkan.o +OBJS-$(CONFIG_BLACKDETECT_VULKAN_FILTER) += vf_blackdetect_vulkan.o vulkan.o vulkan_filter.o OBJS-$(CONFIG_BLACKFRAME_FILTER) += vf_blackframe.o OBJS-$(CONFIG_BLEND_FILTER) += vf_blend.o framesync.o OBJS-$(CONFIG_BLEND_VULKAN_FILTER) += vf_blend_vulkan.o framesync.o vulkan.o vulkan_filter.o @@ -322,6 +322,7 @@ OBJS-$(CONFIG_FIELDMATCH_FILTER) += vf_fieldmatch.o OBJS-$(CONFIG_FIELDORDER_FILTER) += vf_fieldorder.o OBJS-$(CONFIG_FILLBORDERS_FILTER) += vf_fillborders.o OBJS-$(CONFIG_FIND_RECT_FILTER) += vf_find_rect.o lavfutils.o +OBJS-$(CONFIG_FLIP_VULKAN_FILTER) += vf_flip_vulkan.o vulkan.o vulkan_filter.o OBJS-$(CONFIG_FLOODFILL_FILTER) += vf_floodfill.o OBJS-$(CONFIG_FORMAT_FILTER) += vf_format.o OBJS-$(CONFIG_FPS_FILTER) += vf_fps.o @@ -345,7 +346,7 @@ OBJS-$(CONFIG_GREYEDGE_FILTER) += vf_colorconstancy.o OBJS-$(CONFIG_GUIDED_FILTER) += vf_guided.o framesync.o OBJS-$(CONFIG_HALDCLUT_FILTER) += vf_lut3d.o framesync.o OBJS-$(CONFIG_HFLIP_FILTER) += vf_hflip.o -OBJS-$(CONFIG_HFLIP_VULKAN_FILTER) += vf_flip_vulkan.o vulkan.o +OBJS-$(CONFIG_HFLIP_VULKAN_FILTER) += vf_flip_vulkan.o vulkan.o vulkan_filter.o OBJS-$(CONFIG_HISTEQ_FILTER) += vf_histeq.o OBJS-$(CONFIG_HISTOGRAM_FILTER) += vf_histogram.o OBJS-$(CONFIG_HQDN3D_FILTER) += vf_hqdn3d.o @@ -482,10 +483,10 @@ OBJS-$(CONFIG_SCALE_CUDA_FILTER) += vf_scale_cuda.o scale_eval.o sca OBJS-$(CONFIG_SCALE_QSV_FILTER) += vf_vpp_qsv.o OBJS-$(CONFIG_SCALE_VAAPI_FILTER) += vf_scale_vaapi.o scale_eval.o vaapi_vpp.o OBJS-$(CONFIG_SCALE_VT_FILTER) += vf_scale_vt.o scale_eval.o -OBJS-$(CONFIG_SCALE_VULKAN_FILTER) += vf_scale_vulkan.o vulkan.o vulkan_filter.o +OBJS-$(CONFIG_SCALE_VULKAN_FILTER) += vf_scale_vulkan.o scale_eval.o vulkan.o vulkan_filter.o OBJS-$(CONFIG_SCALE2REF_FILTER) += vf_scale.o scale_eval.o framesync.o OBJS-$(CONFIG_SCDET_FILTER) += vf_scdet.o -OBJS-$(CONFIG_SCDET_VULKAN_FILTER) += vf_scdet_vulkan.o +OBJS-$(CONFIG_SCDET_VULKAN_FILTER) += vf_scdet_vulkan.o vulkan.o vulkan_filter.o OBJS-$(CONFIG_SCHARR_FILTER) += vf_convolution.o OBJS-$(CONFIG_SCROLL_FILTER) += vf_scroll.o OBJS-$(CONFIG_SEGMENT_FILTER) += f_segment.o @@ -561,12 +562,12 @@ OBJS-$(CONFIG_UNSHARP_OPENCL_FILTER) += vf_unsharp_opencl.o opencl.o \ OBJS-$(CONFIG_UNTILE_FILTER) += vf_untile.o OBJS-$(CONFIG_USPP_FILTER) += vf_uspp.o qp_table.o OBJS-$(CONFIG_V360_FILTER) += vf_v360.o -OBJS-$(CONFIG_V360_VULKAN_FILTER) += vf_v360_vulkan.o framesync.o +OBJS-$(CONFIG_V360_VULKAN_FILTER) += vf_v360_vulkan.o framesync.o vulkan.o vulkan_filter.o OBJS-$(CONFIG_VAGUEDENOISER_FILTER) += vf_vaguedenoiser.o OBJS-$(CONFIG_VARBLUR_FILTER) += vf_varblur.o framesync.o OBJS-$(CONFIG_VECTORSCOPE_FILTER) += vf_vectorscope.o OBJS-$(CONFIG_VFLIP_FILTER) += vf_vflip.o -OBJS-$(CONFIG_VFLIP_VULKAN_FILTER) += vf_flip_vulkan.o vulkan.o +OBJS-$(CONFIG_VFLIP_VULKAN_FILTER) += vf_flip_vulkan.o vulkan.o vulkan_filter.o OBJS-$(CONFIG_VFRDET_FILTER) += vf_vfrdet.o OBJS-$(CONFIG_VIBRANCE_FILTER) += vf_vibrance.o OBJS-$(CONFIG_VIDSTABDETECT_FILTER) += vidstabutils.o vf_vidstabdetect.o diff --git a/libavfilter/vulkan/Makefile b/libavfilter/vulkan/Makefile index 55de033d6bb..d22bedb223e 100644 --- a/libavfilter/vulkan/Makefile +++ b/libavfilter/vulkan/Makefile @@ -13,6 +13,8 @@ OBJS-$(CONFIG_SCALE_VULKAN_FILTER) += vulkan/scale.comp.spv.o \ OBJS-$(CONFIG_SCDET_VULKAN_FILTER) += vulkan/scdet.comp.spv.o OBJS-$(CONFIG_OVERLAY_VULKAN_FILTER) += vulkan/overlay.comp.spv.o OBJS-$(CONFIG_FLIP_VULKAN_FILTER) += vulkan/flip.comp.spv.o +OBJS-$(CONFIG_HFLIP_VULKAN_FILTER) += vulkan/flip.comp.spv.o +OBJS-$(CONFIG_VFLIP_VULKAN_FILTER) += vulkan/flip.comp.spv.o OBJS-$(CONFIG_FRUC_VULKAN_FILTER) += vulkan/fruc_grayscale.comp.spv.o \ vulkan/fruc_interpolate.comp.spv.o OBJS-$(CONFIG_TRANSPOSE_VULKAN_FILTER) += vulkan/transpose.comp.spv.o -- 2.54.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
